diff --git a/contrib/pg_upgrade/exec.c b/contrib/pg_upgrade/exec.c
new file mode 100644
index ef21899..b632584
*** a/contrib/pg_upgrade/exec.c
--- b/contrib/pg_upgrade/exec.c
*************** check_data_dir(const char *pg_data)
*** 168,174 ****
  	{
  		struct stat statBuf;
  
! 		snprintf(subDirName, sizeof(subDirName), "%s/%s", pg_data,
  				 requiredSubdirs[subdirnum]);
  
  		if (stat(subDirName, &statBuf) != 0)
--- 168,176 ----
  	{
  		struct stat statBuf;
  
! 		snprintf(subDirName, sizeof(subDirName), "%s%s%s", pg_data,
! 			/* Win32 can't stat() a directory with a trailing slash. */
! 				 *requiredSubdirs[subdirnum] ? "/" : "",
  				 requiredSubdirs[subdirnum]);
  
  		if (stat(subDirName, &statBuf) != 0)
