diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index 89f3fed912c950b5eaddc64f3c3b72915682dd34..843d3c7294ff9d074197614e8fa48c073c4199e8 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.58 2009/01/27 12:46:16 mha Exp $
+ * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.59 2009/01/28 15:32:21 mha Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1333,9 +1333,9 @@ wait_for_tests(PID_TYPE *pids, int *statuses, char **names, int num_tests)
 	while (tests_left > 0)
 	{
 		PID_TYPE	p;
-		int			exit_status;
 
 #ifndef WIN32
+		int			exit_status;
 		p = wait(&exit_status);
 
 		if (p == INVALID_PID)
@@ -1345,6 +1345,7 @@ wait_for_tests(PID_TYPE *pids, int *statuses, char **names, int num_tests)
 			exit_nicely(2);
 		}
 #else
+		DWORD		exit_status;
 		int			r;
 
 		r = WaitForMultipleObjects(tests_left, active_pids, FALSE, INFINITE);
@@ -1364,11 +1365,11 @@ wait_for_tests(PID_TYPE *pids, int *statuses, char **names, int num_tests)
 			if (p == pids[i])
 			{
 #ifdef WIN32
-				GetExitCodeProcess(pids[i], (LPDWORD) &exit_status);
+				GetExitCodeProcess(pids[i], &exit_status);
 				CloseHandle(pids[i]);
 #endif
 				pids[i] = INVALID_PID;
-				statuses[i] = exit_status;
+				statuses[i] = (int) exit_status;
 				if (names)
 					status(" %s", names[i]);
 				tests_left--;