diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 29d1f960c1450697641152dab178fe8824a36ea4..d960bbcc208a607e7a359de155e2f281913f907d 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -5265,6 +5265,15 @@ StartupXLOG(void)
 		ControlFile->prevCheckPoint = ControlFile->checkPoint;
 		ControlFile->checkPoint = checkPointLoc;
 		ControlFile->checkPointCopy = checkPoint;
+		if (InArchiveRecovery)
+		{
+			/* initialize minRecoveryPoint if not set yet */
+			if (ControlFile->minRecoveryPoint < checkPoint.redo)
+			{
+				ControlFile->minRecoveryPoint = checkPoint.redo;
+				ControlFile->minRecoveryPointTLI = checkPoint.ThisTimeLineID;
+			}
+		}
 
 		/*
 		 * Set backupStartPoint if we're starting recovery from a base backup.