break;
 
            case HEAPTUPLE_DELETE_IN_PROGRESS:
+               {
+                   TransactionId   xmax;
+
+                   /*
+                    * This tuple may soon become DEAD.  Update the hint field
+                    * so that the page is reconsidered for pruning in future.
+                    * If there was a MultiXactId updater, and it aborted after
+                    * HTSV checked, then we will get an invalid Xid here.
+                    * There is no need for future pruning of the page in that
+                    * case, so skip it.
+                    */
+                   xmax = HeapTupleHeaderGetUpdateXid(htup);
+                   if (TransactionIdIsValid(xmax))
+                       heap_prune_record_prunable(prstate, xmax);
+               }
 
-               /*
-                * This tuple may soon become DEAD.  Update the hint field so
-                * that the page is reconsidered for pruning in future.
-                */
-               heap_prune_record_prunable(prstate,
-                                          HeapTupleHeaderGetUpdateXid(htup));
                break;
 
            case HEAPTUPLE_LIVE: