*** a/src/backend/replication/walsender.c
--- b/src/backend/replication/walsender.c
***************
*** 661,666 **** XLogSend(StringInfo outMsg)
--- 661,673 ----
  
  		sentPtr = endptr;
  
+ 		if (sentPtr.xrecoff >= XLogFileSize)
+ 		{
+ 			/* crossing a logid boundary */
+ 			sentPtr.xlogid += 1;
+ 			sentPtr.xrecoff = 0;
+ 		}
+ 
  		/*
  		 * Read the log directly into the output buffer to prevent
  		 * extra memcpy calls.
