diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
new file mode 100644
index db346e6..db01d06
*** a/src/backend/replication/walsender.c
--- b/src/backend/replication/walsender.c
*************** WalSndWakeup(void)
*** 3008,3013 ****
--- 3008,3014 ----
  	for (i = 0; i < max_wal_senders; i++)
  	{
  		Latch	   *latch;
+ 		WalSndState	state;
  		WalSnd	   *walsnd = &WalSndCtl->walsnds[i];
  
  		/*
*************** WalSndWakeup(void)
*** 3016,3024 ****
  		 */
  		SpinLockAcquire(&walsnd->mutex);
  		latch = walsnd->latch;
  		SpinLockRelease(&walsnd->mutex);
  
! 		if (latch != NULL)
  			SetLatch(latch);
  	}
  }
--- 3017,3026 ----
  		 */
  		SpinLockAcquire(&walsnd->mutex);
  		latch = walsnd->latch;
+ 		state = walsnd->state;
  		SpinLockRelease(&walsnd->mutex);
  
! 		if (latch != NULL && state != WALSNDSTATE_BACKUP)
  			SetLatch(latch);
  	}
  }
