diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index a5235148d49db724b9092eb30c44e3c8e23ac7fb..c019b7230bfb3f394e90be23b91731b0c6402313 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -802,7 +802,7 @@ vac_update_datfrozenxid(void)
 static void
 vac_truncate_clog(TransactionId frozenXID)
 {
-	TransactionId myXID = GetCurrentTransactionId();
+	TransactionId nextXID = ReadNewTransactionId();
 	Relation	relation;
 	HeapScanDesc scan;
 	HeapTuple	tuple;
@@ -834,7 +834,7 @@ vac_truncate_clog(TransactionId frozenXID)
 
 		Assert(TransactionIdIsNormal(dbform->datfrozenxid));
 
-		if (TransactionIdPrecedes(myXID, dbform->datfrozenxid))
+		if (TransactionIdPrecedes(nextXID, dbform->datfrozenxid))
 			frozenAlreadyWrapped = true;
 		else if (TransactionIdPrecedes(dbform->datfrozenxid, frozenXID))
 		{