diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index de17f722dfc1affa52e243f40648e283d0a8709d..679720a33ee0279f07675ec5d130f747c1500372 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -6868,11 +6868,6 @@ StartupXLOG(void)
 				 */
 				if (recoveryStopsHere(record, &recoveryApply))
 				{
-					if (recoveryPauseAtTarget)
-					{
-						SetRecoveryPause(true);
-						recoveryPausesHere();
-					}
 					reachedStopPoint = true;	/* see below */
 					recoveryContinue = false;
 
@@ -6951,6 +6946,12 @@ StartupXLOG(void)
 			 * end of main redo apply loop
 			 */
 
+			if (recoveryPauseAtTarget && reachedStopPoint)
+			{
+				SetRecoveryPause(true);
+				recoveryPausesHere();
+			}
+
 			ereport(LOG,
 					(errmsg("redo done at %X/%X",
 							ReadRecPtr.xlogid, ReadRecPtr.xrecoff)));