Thomas: I confirm your patch triggers this behavior. I can reliably get
a __subclasscheck__ error by trying to "import sys" after the bogus
catching happens:
>>> def g():
... try:
... return g()
... except ValueError:
... return sys.exc_info()
...
>>> g()
(<type 'exceptions.RuntimeError'>, 'maximum recursion depth exceeded
while calling a Python object', <traceback object at 0xb7d9ba04>)
>>> import sys
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: maximum recursion depth exceeded in __subclasscheck__
I hope this helps...