diff --git a/mercurial/commands.py b/mercurial/commands.py
index 930f529b0d5f0f23cd14477aa99ce981c7f9855c_bWVyY3VyaWFsL2NvbW1hbmRzLnB5..67eeb7421d8d4f989fd06ee25497c7da5df7a982_bWVyY3VyaWFsL2NvbW1hbmRzLnB5 100644
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1344,6 +1344,9 @@
                           hint=_('use "hg debugcreatestreamclonebundle"'))
 
     if opts.get('all'):
+        if dest:
+            raise error.Abort(_("--all is incompatible with specifying "
+                                "a destination"))
         base = ['null']
     else:
         base = scmutil.revrange(repo, opts.get('base'))
diff --git a/tests/test-bundle-r.t b/tests/test-bundle-r.t
index 930f529b0d5f0f23cd14477aa99ce981c7f9855c_dGVzdHMvdGVzdC1idW5kbGUtci50..67eeb7421d8d4f989fd06ee25497c7da5df7a982_dGVzdHMvdGVzdC1idW5kbGUtci50 100644
--- a/tests/test-bundle-r.t
+++ b/tests/test-bundle-r.t
@@ -161,6 +161,9 @@
   $ hg -R test bundle --base 2 -r tip test-bundle-branch1.hg test-3
   abort: --base is incompatible with specifying a destination
   [255]
+  $ hg -R test bundle -a -r tip test-bundle-branch1.hg test-3
+  abort: --all is incompatible with specifying a destination
+  [255]
   $ hg -R test bundle -r tip test-bundle-branch1.hg
   abort: repository default-push not found!
   [255]