diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c
index 11bbe2c..df18326 100644
--- a/src/backend/postmaster/checkpointer.c
+++ b/src/backend/postmaster/checkpointer.c
@@ -543,10 +543,10 @@ CheckpointerMain(void)
 		if (elapsed_secs >= CheckPointTimeout)
 			continue;			/* no sleep for us ... */
 		cur_timeout = CheckPointTimeout - elapsed_secs;
-		if (XLogArchiveTimeout > 0 && !RecoveryInProgress())
+		if (XLogArchiveTimeout > 0)
 		{
 			elapsed_secs = now - last_xlog_switch_time;
-			if (elapsed_secs >= XLogArchiveTimeout)
+			if (elapsed_secs >= XLogArchiveTimeout && !RecoveryInProgress())
 				continue;		/* no sleep for us ... */
 			cur_timeout = Min(cur_timeout, XLogArchiveTimeout - elapsed_secs);
 		}
