diff --git a/src/backend/access/transam/xloginsert.c b/src/backend/access/transam/xloginsert.c
new file mode 100644
index 3ec67d4..f6c678c
*** a/src/backend/access/transam/xloginsert.c
--- b/src/backend/access/transam/xloginsert.c
*************** XLogRegisterBuffer(uint8 block_id, Buffe
*** 235,241 ****
  
  	/*
  	 * Check that this page hasn't already been registered with some other
! 	 * block_id.
  	 */
  #ifdef USE_ASSERT_CHECKING
  	{
--- 235,241 ----
  
  	/*
  	 * Check that this page hasn't already been registered with some other
! 	 * block_id, and check for different RelFileNodes in the WAL record.
  	 */
  #ifdef USE_ASSERT_CHECKING
  	{
*************** XLogRegisterBuffer(uint8 block_id, Buffe
*** 248,255 ****
  			if (i == block_id || !regbuf_old->in_use)
  				continue;
  
! 			Assert(!RelFileNodeEquals(regbuf_old->rnode, regbuf->rnode) ||
! 				   regbuf_old->forkno != regbuf->forkno ||
  				   regbuf_old->block != regbuf->block);
  		}
  	}
--- 248,267 ----
  			if (i == block_id || !regbuf_old->in_use)
  				continue;
  
! 			/*
! 			 * The initialization vector (IV) is used for page-level
! 			 * encryption.  We use the LSN and page number as the IV, and IV
! 			 * values must never be reused since it is insecure.	It is safe
! 			 * to use the LSN on multiple pages in the same relation since
! 			 * the page number is part of the IV.  It is unsafe to reuse the
! 			 * LSN in different relations because the page number might be
! 			 * the same, and hence the IV.  Therefore, we check here that
! 			 * we don't have WAL records for different relations using the
! 			 * same LSN.
! 			 */
! 			Assert(RelFileNodeEquals(regbuf_old->rnode, regbuf->rnode));
! 
! 			Assert(regbuf_old->forkno != regbuf->forkno ||
  				   regbuf_old->block != regbuf->block);
  		}
  	}
