diff --git a/src/backend/access/hash/hashutil.c b/src/backend/access/hash/hashutil.c
index d679cf0aed9a209ecf093531afba5c05b206b8d6..037582bd7927f65d51147b7fc993c21518f5a3c8 100644
--- a/src/backend/access/hash/hashutil.c
+++ b/src/backend/access/hash/hashutil.c
@@ -174,7 +174,8 @@ _hash_spareindex(uint32 num_bucket)
 
 	/* account for phases within current group */
 	splitpoint_phases +=
-		(((num_bucket - 1) >> (HASH_SPLITPOINT_PHASE_BITS + 1)) &
+		(((num_bucket - 1) >>
+		  (splitpoint_group - (HASH_SPLITPOINT_PHASE_BITS + 1))) &
 		 HASH_SPLITPOINT_PHASE_MASK);	/* to 0-based value. */
 
 	return splitpoint_phases;