diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
new file mode 100644
index 6db223a..be66b24
*** a/src/bin/pg_upgrade/check.c
--- b/src/bin/pg_upgrade/check.c
*************** create_script_for_old_cluster_deletion(c
*** 532,538 ****
  #endif
  
  	/* delete old cluster's default tablespace */
! 	fprintf(script, RMDIR_CMD " \"%s\"\n", fix_path_separator(old_cluster.pgdata));
  
  	/* delete old cluster's alternate tablespaces */
  	for (tblnum = 0; tblnum < os_info.num_old_tablespaces; tblnum++)
--- 532,539 ----
  #endif
  
  	/* delete old cluster's default tablespace */
! 	fprintf(script, RMDIR_CMD " %c%s%c\n", PATH_QUOTE,
! 			fix_path_separator(old_cluster.pgdata), PATH_QUOTE);
  
  	/* delete old cluster's alternate tablespaces */
  	for (tblnum = 0; tblnum < os_info.num_old_tablespaces; tblnum++)
*************** create_script_for_old_cluster_deletion(c
*** 554,562 ****
  						PATH_SEPARATOR);
  
  			for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++)
! 				fprintf(script, RMDIR_CMD " \"%s%c%d\"\n",
  						fix_path_separator(os_info.old_tablespaces[tblnum]),
! 						PATH_SEPARATOR, old_cluster.dbarr.dbs[dbnum].db_oid);
  		}
  		else
  		{
--- 555,564 ----
  						PATH_SEPARATOR);
  
  			for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++)
! 				fprintf(script, RMDIR_CMD " %c%s%c%d%c\n", PATH_QUOTE,
  						fix_path_separator(os_info.old_tablespaces[tblnum]),
! 						PATH_SEPARATOR, old_cluster.dbarr.dbs[dbnum].db_oid,
! 						PATH_QUOTE);
  		}
  		else
  		{
*************** create_script_for_old_cluster_deletion(c
*** 566,574 ****
  			 * Simply delete the tablespace directory, which might be ".old"
  			 * or a version-specific subdirectory.
  			 */
! 			fprintf(script, RMDIR_CMD " \"%s%s\"\n",
  					fix_path_separator(os_info.old_tablespaces[tblnum]),
! 					fix_path_separator(suffix_path));
  			pfree(suffix_path);
  		}
  	}
--- 568,576 ----
  			 * Simply delete the tablespace directory, which might be ".old"
  			 * or a version-specific subdirectory.
  			 */
! 			fprintf(script, RMDIR_CMD " %c%s%s%c\n", PATH_QUOTE,
  					fix_path_separator(os_info.old_tablespaces[tblnum]),
! 					fix_path_separator(suffix_path), PATH_QUOTE);
  			pfree(suffix_path);
  		}
  	}
diff --git a/src/bin/pg_upgrade/pg_upgrade.h b/src/bin/pg_upgrade/pg_upgrade.h
new file mode 100644
index 4683c6f..bb035e1
*** a/src/bin/pg_upgrade/pg_upgrade.h
--- b/src/bin/pg_upgrade/pg_upgrade.h
*************** extern char *output_files[];
*** 74,79 ****
--- 74,80 ----
  #define pg_mv_file			rename
  #define pg_link_file		link
  #define PATH_SEPARATOR		'/'
+ #define PATH_QUOTE	'\''
  #define RM_CMD				"rm -f"
  #define RMDIR_CMD			"rm -rf"
  #define SCRIPT_PREFIX		"./"
*************** extern char *output_files[];
*** 85,90 ****
--- 86,92 ----
  #define pg_mv_file			pgrename
  #define pg_link_file		win32_pghardlink
  #define PATH_SEPARATOR		'\\'
+ #define PATH_QUOTE	'"'
  #define RM_CMD				"DEL /q"
  #define RMDIR_CMD			"RMDIR /s/q"
  #define SCRIPT_PREFIX		""
