diff --git a/mercurial/exchange.py b/mercurial/exchange.py
index 20fc5d39d0c1628ed04d08b4064a4fbf001f285f_bWVyY3VyaWFsL2V4Y2hhbmdlLnB5..7e2eb964a5617d25bdb19eb3e54a0c98d2c9bca6_bWVyY3VyaWFsL2V4Y2hhbmdlLnB5 100644
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -1731,7 +1731,7 @@
         # 'check_heads' call wil be a no-op
         check_heads(repo, heads, 'uploading changes')
         # push can proceed
-        if not util.safehasattr(cg, 'params'):
+        if not isinstance(cg, bundle2.unbundle20):
             # legacy case: bundle1 (changegroup 01)
             with repo.lock():
                 r = cg.apply(repo, source, url)