Index: trunk/Padre/lib/Padre/Wx/Main.pm
===================================================================
--- trunk/Padre/lib/Padre/Wx/Main.pm	(revision 7779)
+++ trunk/Padre/lib/Padre/Wx/Main.pm	(working copy)
@@ -1601,6 +1601,44 @@
 
 =pod
 
+=head3 on_run_this_test
+
+    $main->on_run_this_test;
+
+Callback method, to run the currently open test through prove.
+
+=cut
+
+sub on_run_this_test {
+	my $self     = shift;
+	my $document = $self->current->document;
+	unless ($document) {
+		return $self->error( Wx::gettext("No document open") );
+	}
+
+	# TODO probably should fetch the current project name
+	my $filename = $document->filename;
+	unless ($filename) {
+		return $self->error( Wx::gettext("Current document has no filename") );
+	}
+    unless ($filename =~ /\.t$/) {
+        return $self->error( Wx::gettext("Current document is not a .t file") );
+    }
+
+	# Find the project
+	my $project_dir = Padre::Util::get_project_dir($filename);
+	unless ($project_dir) {
+		return $self->error( Wx::gettext("Could not find project root") );
+	}
+
+	my $dir = Cwd::cwd;
+	chdir $project_dir;
+	$self->run_command("prove -bv $filename");
+	chdir $dir;
+}
+
+=pod
+
 =head3 run_command
 
     $main->run_command( $command );
Index: trunk/Padre/lib/Padre/Wx/Menu/Run.pm
===================================================================
--- trunk/Padre/lib/Padre/Wx/Menu/Run.pm	(revision 7779)
+++ trunk/Padre/lib/Padre/Wx/Menu/Run.pm	(working copy)
@@ -68,6 +68,16 @@
 			$_[0]->on_run_tests;
 		},
 	);
+    
+    $self->{run_this_test} = $self->add_menu_item(
+        $self,
+        name       => 'run.run_this_test',
+        label      => Wx::gettext('Run This Test'),
+        menu_event => sub {
+            $_[0]->on_run_this_test;
+        },
+    );
+
 	$self->AppendSeparator;
 
 	$self->{stop} = $self->add_menu_item(
@@ -111,6 +121,11 @@
 		? $self->{run_command}->IsEnabled
 		: 0
 	);
+	$self->{run_this_test}->Enable(
+		  $document && defined($document->filename) && $document->filename =~ /\.t$/
+		? $self->{run_command}->IsEnabled
+		: 0
+	);
 
 	return 1;
 }
