diff --git a/src/backend/access/gist/gistsplit.c b/src/backend/access/gist/gistsplit.c
index 0c1d5339ab38e808cbc6a837c7f127ce04034ad6..f4c5999fcbc1e3469725f3e549f1945406f419e4 100644
--- a/src/backend/access/gist/gistsplit.c
+++ b/src/backend/access/gist/gistsplit.c
@@ -460,11 +460,6 @@ gistUserPicksplit(Relation r, GistEntryVector *entryvec, int attno, GistSplitVec
 
 		/* Do a generic split */
 		genericPickSplit(giststate, entryvec, sv, attno);
-
-		/* Clean up if we're in a secondary split */
-		if (sv->spl_ldatum_exists || sv->spl_rdatum_exists)
-			supportSecondarySplit(r, giststate, attno, sv,
-								  v->spl_lattr[attno], v->spl_rattr[attno]);
 	}
 	else
 	{
@@ -473,18 +468,13 @@ gistUserPicksplit(Relation r, GistEntryVector *entryvec, int attno, GistSplitVec
 			sv->spl_left[sv->spl_nleft - 1] = (OffsetNumber) (entryvec->n - 1);
 		if (sv->spl_right[sv->spl_nright - 1] == InvalidOffsetNumber)
 			sv->spl_right[sv->spl_nright - 1] = (OffsetNumber) (entryvec->n - 1);
-
-		/* Clean up if we're in a secondary split */
-		if (sv->spl_ldatum_exists || sv->spl_rdatum_exists)
-		{
-			elog(LOG, "picksplit method for column %d of index \"%s\" doesn't support secondary split",
-				 attno + 1, RelationGetRelationName(r));
-
-			supportSecondarySplit(r, giststate, attno, sv,
-								  v->spl_lattr[attno], v->spl_rattr[attno]);
-		}
 	}
 
+	/* Clean up if PickSplit didn't take care of a secondary split */
+	if (sv->spl_ldatum_exists || sv->spl_rdatum_exists)
+		supportSecondarySplit(r, giststate, attno, sv,
+							  v->spl_lattr[attno], v->spl_rattr[attno]);
+
 	/* emit union datums computed by PickSplit back to v arrays */
 	v->spl_lattr[attno] = sv->spl_ldatum;
 	v->spl_rattr[attno] = sv->spl_rdatum;