Message 71651 - Python tracker
For what it's worth, py3k has a subtler recursion checking algorithm which would probably fix this problem if backported properly. See _Py_CheckRecursiveCall() in ceval.c (lines 462+), and especially the role played by the tstate->overflowed flag, which allows a moderate overflow of the recursion count in order for error handling code to execute properly.