diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 72bc63e4a7c61c4369908899086d2260476fda4b..90d9db374fe0be34179727c678ea69fd3c8e2a0f 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2006, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.133 2006/06/14 16:49:02 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.134 2006/06/21 19:40:31 tgl Exp $
  */
 #include "postgres_fe.h"
 
@@ -130,11 +130,14 @@ main(int argc, char *argv[])
 		}
 	}
 
-	pset.progname = get_progname(argv[0]);
-
 #ifdef WIN32
 	setvbuf(stderr, NULL, _IONBF, 0);
 #endif
+
+	setup_cancel_handler();
+
+	pset.progname = get_progname(argv[0]);
+
 	setDecimalLocale();
 	pset.cur_cmd_source = stdin;
 	pset.cur_cmd_interactive = false;
@@ -370,9 +373,6 @@ main(int argc, char *argv[])
 		if (options.action_string)		/* -f - was used */
 			pset.inputfile = "<stdin>";
 
-		/* establish control-C handling for interactive operation */
-		setup_cancel_handler();
-
 		successResult = MainLoop(stdin);
 	}