Message 52351 - Python tracker
I have stumbled across another scenario where unpickling fails. If your exception takes arguments, but you call Exception.__init__ with a different number of arguments, it will fail. As in:
class D(Exception):
def __init__(self, foo):
self.foo = foo
Exception.__init__(self)