diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index 928f9fe5d6cc9847b2c7c01ddfded292a3e9135c..cbb69f5e10cfab5742d9d5c2df35f5e179afffdb 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -2495,7 +2495,8 @@ DetermineSafeOldestOffset(MultiXactId oldestMXact)
 	 */
 	oldestOffset = find_multixact_start(oldestMXact);
 	/* move back to start of the corresponding segment */
-	oldestOffset -= oldestOffset / MULTIXACT_MEMBERS_PER_PAGE * SLRU_PAGES_PER_SEGMENT;
+	oldestOffset -= oldestOffset %
+		(MULTIXACT_MEMBERS_PER_PAGE * SLRU_PAGES_PER_SEGMENT);
 
 	LWLockAcquire(MultiXactGenLock, LW_EXCLUSIVE);
 	/* always leave one segment before the wraparound point */