diff --git a/doc/src/sgml/recovery-config.sgml b/doc/src/sgml/recovery-config.sgml
index 22d1332b8b4338174471a25658b43a1b92c68dfa..26af221745cc294fbe13df8795a62856fc92f4a3 100644
--- a/doc/src/sgml/recovery-config.sgml
+++ b/doc/src/sgml/recovery-config.sgml
@@ -462,8 +462,9 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
         are not visible until the corresponding commit record is applied.
        </para>
        <para>
-        The delay occurs until the standby is promoted or triggered. After that
-        the standby will end recovery without further waiting.
+        The delay occurs once the database in recovery has reached a consistent
+        state, until the standby is promoted or triggered. After that the standby
+        will end recovery without further waiting.
        </para>
        <para>
         This parameter is intended for use with streaming replication deployments;
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 94b79ac49d589172bb1562a2bdccffae2bcc75f9..00f139a0f388ed90f70b1db75d7f64ca01270999 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -5715,6 +5715,10 @@ recoveryApplyDelay(XLogReaderState *record)
 	if (recovery_min_apply_delay <= 0)
 		return false;
 
+	/* no delay is applied on a database not yet consistent */
+	if (!reachedConsistency)
+		return false;
+
 	/*
 	 * Is it a COMMIT record?
 	 *