--- a/mercurial/bundle2.py Sat Apr 12 00:53:15 2014 -0400
+++ b/mercurial/bundle2.py Fri Apr 11 16:43:01 2014 -0400
@@ -305,6 +305,11 @@
# todo:
# - consume the part once we use streaming
continue
+
+ # handler is called outside the above try block so that we don't
+ # risk catching KeyErrors from anything other than the
+ # parthandlermapping lookup (any KeyError raised by handler()
+ # itself represents a defect of a different variety).
handler(op, part)
except Exception:
for part in iterparts: