diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index a79cf836b27aab3895650a5a43b75babb71afb5d..f05623186d28e5faf819cda139dd6e807bc5a09f 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.47 2004/08/08 06:44:33 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.48 2004/08/08 06:58:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -858,9 +858,11 @@ runPgDump(const char *dbname)
 #ifndef WIN32
 		if (*p == '\'')
 			appendPQExpBuffer(cmd, "'\"'\"'");
-		else
+#else
+		if (*p == '"')
+			appendPQExpBuffer(cmd, "\\\"");
 #endif
-		/* not needed on Win32 */
+		else
 			appendPQExpBufferChar(cmd, *p);
 	}
 
@@ -868,10 +870,8 @@ runPgDump(const char *dbname)
 	appendPQExpBufferChar(cmd, '\'');
 #else
 	appendPQExpBufferChar(cmd, '"');
+	appendPQExpBuffer(cmd, SYSTEMQUOTE);
 #endif
-
-	if (strlen(SYSTEMQUOTE) > 0)
-		appendPQExpBuffer(cmd, SYSTEMQUOTE);
 	
 	if (verbose)
 		fprintf(stderr, _("%s: running \"%s\"\n"), progname, cmd->data);