Index: ctl/ctlSQLResult.cpp
===================================================================
--- ctl/ctlSQLResult.cpp	(revision 4874)
+++ ctl/ctlSQLResult.cpp	(working copy)
@@ -40,6 +40,12 @@
 }
 
 
+void ctlSQLResult::SelectAll()
+{
+	for (int i = 0; i < GetItemCount(); i++)
+		Select(i);
+}
+
 bool ctlSQLResult::Export()
 {
     if (rowsRetrieved>0 || (thread && thread->DataSet()->NumRows() > 0))
Index: frm/frmQuery.cpp
===================================================================
--- frm/frmQuery.cpp	(revision 4874)
+++ frm/frmQuery.cpp	(working copy)
@@ -73,6 +73,7 @@
     EVT_MENU(MNU_HELP,              frmQuery::OnHelp)
     EVT_MENU(MNU_CLEARHISTORY,      frmQuery::OnClearHistory)
     EVT_MENU(MNU_SAVEHISTORY,       frmQuery::OnSaveHistory)
+	EVT_MENU(MNU_SELECTALL,		    frmQuery::OnSelectAll)
     EVT_ACTIVATE(                   frmQuery::OnActivate)
     EVT_STC_MODIFIED(CTL_SQLQUERY,  frmQuery::OnChangeStc)
     EVT_STC_UPDATEUI(CTL_SQLQUERY,  frmQuery::OnPositionStc)
@@ -158,7 +159,7 @@
 
     UpdateRecentFiles();
 
-    wxAcceleratorEntry entries[9];
+    wxAcceleratorEntry entries[10];
 
     entries[0].Set(wxACCEL_CTRL,                (int)'E',      MNU_EXECUTE);
     entries[1].Set(wxACCEL_CTRL,                (int)'O',      MNU_OPEN);
@@ -168,9 +169,10 @@
     entries[5].Set(wxACCEL_NORMAL,              WXK_F5,        MNU_EXECUTE);
     entries[6].Set(wxACCEL_NORMAL,              WXK_F7,        MNU_EXPLAIN);
     entries[7].Set(wxACCEL_ALT,                 WXK_PAUSE,     MNU_CANCEL);
-    entries[8].Set(wxACCEL_NORMAL,              WXK_F1,        MNU_HELP);
+	entries[8].Set(wxACCEL_CTRL,				(int)'A',	   MNU_SELECTALL);
+    entries[9].Set(wxACCEL_NORMAL,              WXK_F1,        MNU_HELP);
 
-    wxAcceleratorTable accel(8, entries);
+    wxAcceleratorTable accel(9, entries);
     SetAcceleratorTable(accel);
 
     queryMenu->Enable(MNU_CANCEL, false);
@@ -630,6 +633,20 @@
         msgHistory->Clear();
 }
 
+void frmQuery::OnSelectAll(wxCommandEvent& ev)
+{
+	wxWindow *wnd=currentControl();
+
+	if (wnd == sqlQuery)
+		sqlQuery->SelectAll();
+	else if (wnd == msgResult)
+		msgResult->SelectAll();
+	else if (wnd == msgHistory)
+		msgHistory->SelectAll();
+	else if (wnd == sqlResult)
+		sqlResult->SelectAll();
+}
+
 void frmQuery::OnFind(wxCommandEvent& ev)
 {
       sqlQuery->OnFind(ev);
Index: include/ctl/ctlSQLResult.h
===================================================================
--- include/ctl/ctlSQLResult.h	(revision 4874)
+++ include/ctl/ctlSQLResult.h	(working copy)
@@ -41,6 +41,8 @@
     int RetrieveOne();
     int Abort();
 
+	void SelectAll();
+
     bool Export();
     bool CanExport() { return rowsRetrieved>0 && colNames.GetCount() > 0; }
 
Index: include/frmQuery.h
===================================================================
--- include/frmQuery.h	(revision 4874)
+++ include/frmQuery.h	(working copy)
@@ -65,6 +65,7 @@
     void OnClearHistory(wxCommandEvent& event);
     void OnActivate(wxActivateEvent& event);
     void OnFocus(wxFocusEvent& event);
+	void OnSelectAll(wxCommandEvent& event);
 
     bool CheckChanged(bool canVeto);
     void OpenLastFile();
Index: include/menu.h
===================================================================
--- include/menu.h	(revision 4874)
+++ include/menu.h	(working copy)
@@ -55,6 +55,7 @@
     MNU_CLEARHISTORY,
     MNU_SAVEHISTORY,
     MNU_CHECKALIVE,
+	MNU_SELECTALL,
 
     MNU_CONTENTS,
     MNU_HELP,
