diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c
index 0ebeef23b1ffdbb4a418081cd00d130865ce50e0..5cb395d818e511f62717405f47712f56f7c0a57d 100644
--- a/src/backend/replication/basebackup.c
+++ b/src/backend/replication/basebackup.c
@@ -276,6 +276,12 @@ sendDir(char *path, int basepathlen, bool sizeonly)
 		if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0)
 			continue;
 
+		/* Skip temporary files */
+		if (strncmp(de->d_name,
+					PG_TEMP_FILE_PREFIX,
+					strlen(PG_TEMP_FILE_PREFIX)) == 0)
+			continue;
+
 		snprintf(pathbuf, MAXPGPATH, "%s/%s", path, de->d_name);
 
 		/* Skip postmaster.pid in the data directory */