diff --git a/src/backend/replication/syncrep.c b/src/backend/replication/syncrep.c
index 25c67aaac72b50f931e547790d7df26694c8c218..554f783209635167b1089c3b73fda6f23a0400bb 100644
--- a/src/backend/replication/syncrep.c
+++ b/src/backend/replication/syncrep.c
@@ -951,7 +951,14 @@ SyncRepGetStandbyPriority(void)
 		standby_name += strlen(standby_name) + 1;
 	}
 
-	return (found ? priority : 0);
+	if (!found)
+		return 0;
+
+	/*
+	 * In quorum-based sync replication, all the standbys in the list
+	 * have the same priority, one.
+	 */
+	return (SyncRepConfig->syncrep_method == SYNC_REP_PRIORITY) ? priority : 1;
 }
 
 /*
diff --git a/src/test/recovery/t/007_sync_rep.pl b/src/test/recovery/t/007_sync_rep.pl
index e11b4289d5289a76c45d05efae337a994d7bc455..e56bbb9d86f6288db887d82a90257189dd61fa45 100644
--- a/src/test/recovery/t/007_sync_rep.pl
+++ b/src/test/recovery/t/007_sync_rep.pl
@@ -186,7 +186,7 @@ standby4|0|async),
 # for sync standbys in a quorum-based sync replication.
 test_sync_state(
 $node_master, qq(standby1|1|quorum
-standby2|2|quorum
+standby2|1|quorum
 standby4|0|async),
 '2 quorum and 1 async',
 'ANY 2(standby1, standby2)');