diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c
index 49d63f4dfe..e3b17cf0e2 100644
--- a/src/backend/executor/nodeAppend.c
+++ b/src/backend/executor/nodeAppend.c
@@ -489,11 +489,9 @@ choose_next_subplan_for_worker(AppendState *node)
 	}
 
 	/* Pick the plan we found, and advance pa_next_plan one more time. */
-	node->as_whichplan = pstate->pa_next_plan;
+	node->as_whichplan = pstate->pa_next_plan++;
 	if (pstate->pa_next_plan == node->as_nplans)
 		pstate->pa_next_plan = append->first_partial_plan;
-	else
-		pstate->pa_next_plan++;
 
 	/* If non-partial, immediately mark as finished. */
 	if (node->as_whichplan < append->first_partial_plan)
