This is Neil's fix for SF bug 535905 (Evil Trashcan and GC interaction).
The fix makes it possible to call PyObject_GC_UnTrack() more than once
on the same object, and then move the PyObject_GC_UnTrack() call to
*before* the trashcan code is invoked.
BUGFIX CANDIDATE!
static void
tb_dealloc(tracebackobject *tb)
{
+ PyObject_GC_UnTrack(tb);
Py_TRASHCAN_SAFE_BEGIN(tb)
- _PyObject_GC_UNTRACK(tb);
Py_XDECREF(tb->tb_next);
Py_XDECREF(tb->tb_frame);
PyObject_GC_Del(tb);