diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 6c69eb6dd7..61ba6b852e 100644
*** a/src/backend/access/transam/xlog.c
--- b/src/backend/access/transam/xlog.c
***************
*** 5618,5623 **** recoveryStopsBefore(XLogReaderState *record)
--- 5618,5630 ----
  	TimestampTz recordXtime = 0;
  	TransactionId recordXid;
  
+ 	/*
+ 	 * Ignore recovery target settings when not in archive recovery (meaning
+ 	 * we are in crash recovery).
+ 	 */
+ 	if (!ArchiveRecoveryRequested)
+ 		return false;
+ 
  	/* Check if we should stop as soon as reaching consistency */
  	if (recoveryTarget == RECOVERY_TARGET_IMMEDIATE && reachedConsistency)
  	{
***************
*** 5759,5764 **** recoveryStopsAfter(XLogReaderState *record)
--- 5766,5778 ----
  	uint8		rmid;
  	TimestampTz recordXtime;
  
+ 	/*
+ 	 * Ignore recovery target settings when not in archive recovery (meaning
+ 	 * we are in crash recovery).
+ 	 */
+ 	if (!ArchiveRecoveryRequested)
+ 		return false;
+ 
  	info = XLogRecGetInfo(record) & ~XLR_INFO_MASK;
  	rmid = XLogRecGetRmid(record);
  
