--- Padre/lib/Padre/Action/Edit.pm	2010-03-02 00:28:12.175826882 +0100
+++ Padre/lib/Padre/Action/Edit.pm.fix	2010-03-02 00:25:10.843495917 +0100
@@ -318,6 +318,34 @@
 			Padre::Wx::Main::on_brace_matching(@_);
 		},
 	);
+	
+	Padre::Action->new(
+		name        => 'edit.brace_match_select',
+		need_editor => 1,
+		label       => Wx::gettext('&Select to matching brace'),
+		comment     => Wx::gettext('Select to the matching opening or closing brace: {, }, (, )'),
+		shortcut    => 'Ctrl-4',
+		menu_event  => sub {
+			my $self = shift;
+			my $INVALID_POSITION = Wx::wxSTC_INVALID_POSITION;
+			my $page = $self->current->editor;
+			my $pos1 = $page->GetCurrentPos;
+			my $pos2 = $page->BraceMatch($pos1);
+			if ( $pos2 == $INVALID_POSITION ) { #Wx::wxSTC_INVALID_POSITION
+				if ( $pos1 > 0 ) {
+					$pos1--;
+					$pos2 = $page->BraceMatch($pos1);
+				}
+			}
+
+			if ( $pos2 != $INVALID_POSITION ) { #Wx::wxSTC_INVALID_POSITION
+				my $start = $page->GetSelectionStart();
+				$page->SetSelection($start, $pos2+1);
+			}
+
+			return;			
+		},
+	);
 
 	Padre::Action->new(
 		name           => 'edit.join_lines',
--- Padre/lib/Padre/Wx/Menu/Edit.pm	2010-03-02 00:28:08.167543814 +0100
+++ Padre/lib/Padre/Wx/Menu/Edit.pm.fix	2010-03-02 00:25:40.263492334 +0100
@@ -144,6 +144,11 @@
 		$self,
 		'edit.brace_match',
 	);
+	
+	$self->{brace_match_select} = $self->add_menu_action(
+		$self,
+		'edit.brace_match_select',
+	);
 
 	$self->{join_lines} = $self->add_menu_action(
 		$self,
@@ -361,6 +366,7 @@
 	$self->{quick_fix}->Enable($hasdoc);
 	$self->{autocomp}->Enable($hasdoc);
 	$self->{brace_match}->Enable($hasdoc);
+	$self->{brace_match_select}->Enable($hasdoc);
 	$self->{join_lines}->Enable($hasdoc);
 
 	$self->{insert_special}->Enable($hasdoc);
