*** a/src/backend/access/heap/heapam.c
--- b/src/backend/access/heap/heapam.c
***************
*** 5113,5122 **** heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
  	 * cutoff; it doesn't remove dead members of a very old multixact.
  	 */
  	xid = HeapTupleHeaderGetRawXmax(tuple);
! 	if (TransactionIdIsNormal(xid) &&
! 		(((!(tuple->t_infomask & HEAP_XMAX_IS_MULTI) &&
! 		   TransactionIdPrecedes(xid, cutoff_xid))) ||
! 		 MultiXactIdPrecedes(xid, cutoff_multi)))
  	{
  		HeapTupleHeaderSetXmax(tuple, InvalidTransactionId);
  
--- 5113,5124 ----
  	 * cutoff; it doesn't remove dead members of a very old multixact.
  	 */
  	xid = HeapTupleHeaderGetRawXmax(tuple);
! 	if (((tuple->t_infomask & HEAP_XMAX_IS_MULTI) &&
! 		 MultiXactIdIsValid(xid) &&
! 		 MultiXactIdPrecedes(xid, cutoff_multi)) ||
! 		((!(tuple->t_infomask & HEAP_XMAX_IS_MULTI)) &&
! 		 TransactionIdIsNormal(xid) &&
! 		 TransactionIdPrecedes(xid, cutoff_xid)))
  	{
  		HeapTupleHeaderSetXmax(tuple, InvalidTransactionId);
  
