diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 0646f53098..3eb296c1f6 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -4119,7 +4119,12 @@ pgstat_write_statsfiles(bool permanent, bool allDbs)
 						tmpfile)));
 		unlink(tmpfile);
 	}
+#if defined(WIN32) && !defined(__CYGWIN__)	
+	else if (rename(tmpfile, statfile) < 0 && 
+			!MoveFileEx(tmpfile, statfile, MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED))
+#else
 	else if (rename(tmpfile, statfile) < 0)
+#endif
 	{
 		ereport(LOG,
 				(errcode_for_file_access(),
@@ -4267,7 +4272,12 @@ pgstat_write_db_statsfile(PgStat_StatDBEntry *dbentry, bool permanent)
 						tmpfile)));
 		unlink(tmpfile);
 	}
+#if defined(WIN32) && !defined(__CYGWIN__)	
+	else if (rename(tmpfile, statfile) < 0 && 
+			!MoveFileEx(tmpfile, statfile, MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED))
+#else
 	else if (rename(tmpfile, statfile) < 0)
+#endif
 	{
 		ereport(LOG,
 				(errcode_for_file_access(),