diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c
index 9f3ecc60fbe..8dd9721323d 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -1223,17 +1223,17 @@ CreateBackupStreamer(char *archive_name, char *spclocation,
 	is_tar = (archive_name_len > 4 &&
 			  strcmp(archive_name + archive_name_len - 4, ".tar") == 0);
 
-	/* Is this a gzip archive? */
-	is_tar_gz = (archive_name_len > 8 &&
-				 strcmp(archive_name + archive_name_len - 3, ".gz") == 0);
+	/* Is this a .tar.gz archive? */
+	is_tar_gz = (archive_name_len > 7 &&
+				 strcmp(archive_name + archive_name_len - 7, ".tar.gz") == 0);
 
-	/* Is this a LZ4 archive? */
+	/* Is this a .tar.lz4 archive? */
 	is_tar_lz4 = (archive_name_len > 8 &&
-				  strcmp(archive_name + archive_name_len - 4, ".lz4") == 0);
+				  strcmp(archive_name + archive_name_len - 8, ".tar.lz4") == 0);
 
-	/* Is this a ZSTD archive? */
+	/* Is this a .tar.zst archive? */
 	is_tar_zstd = (archive_name_len > 8 &&
-				   strcmp(archive_name + archive_name_len - 4, ".zst") == 0);
+				   strcmp(archive_name + archive_name_len - 8, ".tar.zst") == 0);
 
 	/*
 	 * We have to parse the archive if (1) we're suppose to extract it, or if
