diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index 9d3323a2ac34d5ce50e8d8dcbb9b4580ae3cc601..d8bd3e8d44d604e86260c0cdd2c020fb0e48397c 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.30 2001/02/10 02:31:28 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.31 2001/03/01 18:34:29 tgl Exp $
  */
 #include "postgres_fe.h"
 
@@ -429,34 +429,35 @@ SendQuery(const char *query)
 					FILE	   *queryFout_copy = pset.queryFout;
 					bool		queryFoutPipe_copy = pset.queryFoutPipe;
 
-					pset.queryFout = NULL;		/* so it doesn't get
+					pset.queryFout = stdout;	/* so it doesn't get
 												 * closed */
 
 					/* open file/pipe */
 					if (!setQFout(pset.gfname))
 					{
+						pset.queryFout = queryFout_copy;
+						pset.queryFoutPipe = queryFoutPipe_copy;
 						success = false;
 						break;
 					}
 
 					printQuery(results, &pset.popt, pset.queryFout);
 
-					/* close file/pipe */
+					/* close file/pipe, restore old setting */
 					setQFout(NULL);
 
-					free(pset.gfname);
-					pset.gfname = NULL;
-
 					pset.queryFout = queryFout_copy;
 					pset.queryFoutPipe = queryFoutPipe_copy;
 
+					free(pset.gfname);
+					pset.gfname = NULL;
+
 					success = true;
-					break;
 				}
 				else
 				{
-					success = true;
 					printQuery(results, &pset.popt, pset.queryFout);
+					success = true;
 				}
 				break;
 			case PGRES_EMPTY_QUERY: