Index: trunk/Padre/lib/Padre/File/Local.pm
===================================================================
--- trunk/Padre/lib/Padre/File/Local.pm	(revision 8757)
+++ trunk/Padre/lib/Padre/File/Local.pm	(working copy)
@@ -173,6 +173,11 @@
 	return File::Basename::dirname( $self->{filename} );
 }
 
+sub readonly {
+	my $self = shift;
+	return 1 if (! -w $self->{filename});
+}
+
 1;
 
 # Copyright 2008-2009 The Padre development team as listed in Padre.pm.
Index: trunk/Padre/lib/Padre/Wx/StatusBar.pm
===================================================================
--- trunk/Padre/lib/Padre/Wx/StatusBar.pm	(revision 8757)
+++ trunk/Padre/lib/Padre/Wx/StatusBar.pm	(working copy)
@@ -64,6 +64,7 @@
 	MIMETYPE    => 3,
 	NEWLINE     => 4,
 	POSTRING    => 5,
+	RDONLY      => 6,
 };
 
 #####################################################################
@@ -105,7 +106,7 @@
 	);
 
 	# Set up the fields
-	$self->SetFieldsCount(6);
+	$self->SetFieldsCount(7);
 
 	#$self->SetStatusWidths( -1, 0, 100, 100, 50, 100 );
 
@@ -135,6 +136,7 @@
 	$self->SetStatusText( "", MIMETYPE );
 	$self->SetStatusText( "", NEWLINE );
 	$self->SetStatusText( "", POSTRING );
+	$self->SetStatusText( "", RDONLY );
 	return;
 }
 
@@ -187,6 +189,7 @@
 	my $format   = '%' . length( $lines + 1 ) . 's,%-3s %3s%%';
 	my $length   = length( $lines + 1 ) + 8;
 	my $postring = sprintf( $format, ( $line + 1 ), $char, $percent );
+	my $rdstatus = $self->is_read_only;
 
 	# update task load status
 	$self->update_task_status;
@@ -197,6 +200,7 @@
 	$self->SetStatusText( $mime_type_name,       MIMETYPE );
 	$self->SetStatusText( $newline,              NEWLINE );
 	$self->SetStatusText( $postring,             POSTRING );
+	$self->SetStatusText( $rdstatus,             RDONLY );
 	$self->SetStatusWidths(
 		-1,
 		$self->_task_width,
@@ -204,6 +208,7 @@
 		( length($mime_type_name) + 2 ) * $width,
 		( length($newline) + 2 ) * $width,
 		( $length + 2 ) * $width,
+		length($rdstatus) * $width,
 	);
 
 	# move the static bitmap holding the task load status
@@ -374,6 +379,14 @@
 	$sbmp->Refresh;
 }
 
+sub is_read_only {
+	my ($self)    = @_;
+	my $file      = $self->current->document->file || '';
+	my $is_rdonly = $file->readonly if $file;
+	$is_rdonly ? return 'Read Only' : return ':)';
+}
+
+
 1;
 
 =pod
Index: trunk/Padre/lib/Padre/Wx/Main.pm
===================================================================
--- trunk/Padre/lib/Padre/Wx/Main.pm	(revision 8757)
+++ trunk/Padre/lib/Padre/Wx/Main.pm	(working copy)
@@ -1022,6 +1022,12 @@
 	$self->GetStatusBar->update_pos( $_[0] or $self->current );
 }
 
+sub refresh_rdstatus {
+	my $self = shift;
+	return if $self->no_refresh;
+	$self->GetStatusBar->is_read_only( $_[0] or $self->current );
+}
+
 =pod
 
 =head3 refresh_functions
@@ -4182,6 +4188,8 @@
 	#	$self->refresh_status($current);
 	$self->refresh_cursorpos($current);
 
+	$self->refresh_rdstatus($current);
+
 	# $self->refresh_functions;
 	# $self->refresh_syntaxcheck;
 
