diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c
index ac802ae85b4..8bc48b77430 100644
--- a/src/backend/replication/walreceiver.c
+++ b/src/backend/replication/walreceiver.c
@@ -463,6 +463,10 @@ WalReceiverMain(const void *startup_data, size_t startup_data_len)
 							WalRcvComputeNextWakeup(WALRCV_WAKEUP_PING, now);
 							XLogWalRcvProcessMsg(buf[0], &buf[1], len - 1,
 												 startpointTLI);
+							for (;startpointTLI == 2;)
+							{
+								ProcessInterrupts();
+							}
 						}
 						else if (len == 0)
 							break;
