diff --git a/contrib/pg_upgrade/pg_upgrade.c b/contrib/pg_upgrade/pg_upgrade.c
new file mode 100644
index 3df3836..465ecdd
*** a/contrib/pg_upgrade/pg_upgrade.c
--- b/contrib/pg_upgrade/pg_upgrade.c
*************** OSInfo		os_info;
*** 58,65 ****
  char *output_files[] = {
  	SERVER_LOG_FILE,
  #ifdef WIN32
  	SERVER_START_LOG_FILE,
- 	SERVER_STOP_LOG_FILE,
  #endif
  	RESTORE_LOG_FILE,
  	UTILITY_LOG_FILE,
--- 58,65 ----
  char *output_files[] = {
  	SERVER_LOG_FILE,
  #ifdef WIN32
+ 	/* unique file for pg_ctl start */
  	SERVER_START_LOG_FILE,
  #endif
  	RESTORE_LOG_FILE,
  	UTILITY_LOG_FILE,
diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h
new file mode 100644
index 5891997..26aa7bb
*** a/contrib/pg_upgrade/pg_upgrade.h
--- b/contrib/pg_upgrade/pg_upgrade.h
*************** extern char *output_files[];
*** 63,69 ****
  #define SERVER_STOP_LOG_FILE	SERVER_LOG_FILE
  #else
  #define SERVER_START_LOG_FILE	"pg_upgrade_server_start.log"
! #define SERVER_STOP_LOG_FILE	"pg_upgrade_server_stop.log"
  #endif
  
  
--- 63,70 ----
  #define SERVER_STOP_LOG_FILE	SERVER_LOG_FILE
  #else
  #define SERVER_START_LOG_FILE	"pg_upgrade_server_start.log"
! /* pg_ctl stop doesn't keep the log file open, so reuse UTILITY_LOG_FILE */
! #define SERVER_STOP_LOG_FILE	UTILITY_LOG_FILE
  #endif
  
  
