diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 5452ae1..ae4bcd8 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -7371,7 +7371,8 @@ CreateRestartPoint(int flags)
         * restartpoint. It's assumed that flushing the buffers will do that as a
         * side-effect.
         */
-       if (XLogRecPtrIsInvalid(lastCheckPointRecPtr) ||
+       if (( ControlFile->state == DB_IN_ARCHIVE_RECOVERY && RecoveryInProgress()) ||
+               XLogRecPtrIsInvalid(lastCheckPointRecPtr) ||
                lastCheckPoint.redo <= ControlFile->checkPointCopy.redo)
        {
                ereport(DEBUG2,
