diff --git a/src/bin/pg_upgrade/file.c b/src/bin/pg_upgrade/file.c
new file mode 100644
index 79d9390..37eb832
*** a/src/bin/pg_upgrade/file.c
--- b/src/bin/pg_upgrade/file.c
*************** copyAndUpdateFile(pageCnvCtx *pageConver
*** 34,40 ****
  {
  	if (pageConverter == NULL)
  	{
! 		if (pg_copy_file(src, dst, force) == -1)
  			return getErrorText(errno);
  		else
  			return NULL;
--- 34,44 ----
  {
  	if (pageConverter == NULL)
  	{
! #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/src/bin/pg_upgrade/pg_upgrade.h b/src/bin/pg_upgrade/pg_upgrade.h
new file mode 100644
index 13aa891..fa4661b
*** a/src/bin/pg_upgrade/pg_upgrade.h
--- b/src/bin/pg_upgrade/pg_upgrade.h
*************** extern char *output_files[];
*** 70,76 ****
  
  
  #ifndef WIN32
- #define pg_copy_file		copy_file
  #define pg_mv_file			rename
  #define pg_link_file		link
  #define PATH_SEPARATOR		'/'
--- 70,75 ----
*************** extern char *output_files[];
*** 82,88 ****
  #define ECHO_QUOTE	"'"
  #define ECHO_BLANK	""
  #else
- #define pg_copy_file		CopyFile
  #define pg_mv_file			pgrename
  #define pg_link_file		win32_pghardlink
  #define PATH_SEPARATOR		'\\'
--- 81,86 ----
