Index: include/frm/frmRestore.h
===================================================================
--- include/frm/frmRestore.h	(revision 8225)
+++ include/frm/frmRestore.h	(working copy)
@@ -39,9 +39,6 @@
     void OnChangeList(wxListEvent &ev);
     void OnEndProcess(wxProcessEvent& event);
 
-    wxString getCmdPart1();
-    wxString getCmdPart2(int step);
-
     frmMain *form;
     pgObject *object;
     pgServer *server;
Index: frm/frmRestore.cpp
===================================================================
--- frm/frmRestore.cpp	(revision 8225)
+++ frm/frmRestore.cpp	(working copy)
@@ -263,45 +263,24 @@
 
 wxString frmRestore::GetCmd(int step)
 {
-    wxString cmd = getCmdPart1();
+    wxString cmd, restoreExecutable;
 
-    return cmd + getCmdPart2(step);
-}
-
-
-wxString frmRestore::GetDisplayCmd(int step)
-{
-    wxString cmd = getCmdPart1();
-
-    return cmd + getCmdPart2(step);
-}
-
-
-wxString frmRestore::getCmdPart1()
-{
-    wxString cmd;
-
     if (object->GetConnection()->EdbMinimumVersion(8,0))
-        cmd=edbRestoreExecutable;
+        restoreExecutable=edbRestoreExecutable;
     else if (object->GetConnection()->GetIsGreenplum())
-        cmd=gpRestoreExecutable;
+        restoreExecutable=gpRestoreExecutable;
     else
-        cmd=pgRestoreExecutable;
+        restoreExecutable=pgRestoreExecutable;
 
+    cmd = restoreExecutable;
+
     if (!server->GetName().IsEmpty())
         cmd += wxT(" --host ") + server->GetName();
 
     cmd += wxT(" --port ") + NumToStr((long)server->GetPort())
          + wxT(" --username ") + qtIdent(server->GetUsername())
          + wxT(" --dbname ") + commandLineCleanOption(object->GetDatabase()->GetQuotedIdentifier());
-    return cmd;
-}
 
-
-wxString frmRestore::getCmdPart2(int step)
-{
-    wxString cmd;
-
     if (step)
     {
         cmd.Append(wxT(" --list"));
@@ -347,10 +326,29 @@
                     break;
                 }
                 case PGM_TABLE:
-                    cmd.Append(wxT(" --table ") + object->GetQuotedIdentifier());
+                {
+                    // The syntax changed in 8.2 :-(
+                    if (pgAppMinimumVersion(restoreExecutable, 8, 2))
+                    {
+                        wxString strTable;
+#ifdef WIN32
+                        strTable = wxT("\"") + ((pgTable*)object)->GetSchema()->GetQuotedIdentifier() + 
+                                   wxT("\".\"") + ((pgTable*)object)->GetQuotedIdentifier() + wxT("\"");
+#else
+                        strTable = wxT("'") + ((pgTable*)object)->GetSchema()->GetQuotedIdentifier() + 
+                                   wxT(".") + ((pgTable*)object)->GetQuotedIdentifier() + wxT("'");
+#endif
+                        cmd.Append(wxT(" --table ") + commandLineCleanOption(strTable));
+                    }
+                    else
+                    {
+                        cmd.Append(wxT(" --table ") + commandLineCleanOption(((pgTable*)object)->GetQuotedIdentifier()));
+                        cmd.Append(wxT(" --schema ") + commandLineCleanOption(((pgTable*)object)->GetSchema()->GetQuotedIdentifier()));
+                    }
                     break;
+                }
                 case PGM_FUNCTION:
-                    cmd.Append(wxT(" --function ") + object->GetQuotedIdentifier());
+                    cmd.Append(wxT(" --function ") + commandLineCleanOption(object->GetQuotedIdentifier()));
                     break;
                 default:
                     break;
@@ -370,6 +368,12 @@
 }
 
 
+wxString frmRestore::GetDisplayCmd(int step)
+{
+      return GetCmd(step);
+}
+
+
 void frmRestore::OnView(wxCommandEvent &ev)
 {
     btnView->Disable();
