diff --git a/tests/flagprocessorext.py b/tests/flagprocessorext.py
index 1da9b2a4cbb88f55041bd01d6536cac8d96e1a98_dGVzdHMvZmxhZ3Byb2Nlc3NvcmV4dC5weQ==..77f746e5383a8577fcd227d477cc8866421f6a62_dGVzdHMvZmxhZ3Byb2Nlc3NvcmV4dC5weQ== 100644
--- a/tests/flagprocessorext.py
+++ b/tests/flagprocessorext.py
@@ -7,6 +7,7 @@
 
 from mercurial import (
     changegroup,
+    exchange,
     extensions,
     filelog,
     revlog,
@@ -103,6 +104,10 @@
     revlog.REVIDX_KNOWN_FLAGS |= util.bitsfrom(flags)
     revlog.REVIDX_FLAGS_ORDER.extend(flags)
 
+    # Teach exchange to use changegroup 3
+    for k in exchange._bundlespeccgversions.keys():
+        exchange._bundlespeccgversions[k] = '03'
+
     # Add wrappers for addrevision, responsible to set flags depending on the
     # revision data contents.
     wrapfunction(filelog.filelog, 'addrevision', noopaddrevision)