diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
index b76fcdbf79e70262ed6918c2f36dd94356cbfe8a..40463c61369e163762e0291185b36b4a358d7593 100644
--- a/contrib/pg_upgrade/file.c
+++ b/contrib/pg_upgrade/file.c
@@ -34,7 +34,11 @@ copyAndUpdateFile(pageCnvCtx *pageConverter,
 {
 	if (pageConverter == NULL)
 	{
-		if (pg_copy_file(src, dst, force) == -1)
+#ifndef WIN32
+		if (copy_file(src, dst, force) == -1)
+#else
+		if (CopyFile(src, dst, force) == 0)
+#endif
 			return getErrorText(errno);
 		else
 			return NULL;
diff --git a/contrib/pg_upgrade/pg_upgrade.h b/contrib/pg_upgrade/pg_upgrade.h
index 8f55e673f0df28f1251d9366341dccc8ee9aef78..e958f2bd18c58c116a8444c8833be54724747b25 100644
--- a/contrib/pg_upgrade/pg_upgrade.h
+++ b/contrib/pg_upgrade/pg_upgrade.h
@@ -73,7 +73,6 @@ extern char *output_files[];
 
 
 #ifndef WIN32
-#define pg_copy_file		copy_file
 #define pg_mv_file			rename
 #define pg_link_file		link
 #define PATH_SEPARATOR      '/'
@@ -83,7 +82,6 @@ extern char *output_files[];
 #define ECHO_QUOTE	"'"
 #define ECHO_BLANK  ""
 #else
-#define pg_copy_file		CopyFile
 #define pg_mv_file			pgrename
 #define pg_link_file		win32_pghardlink
 #define sleep(x)			Sleep(x * 1000)