is this a bug in pyrex? the following pyrex code: if callback: generates this c code. notice the if (__pyx_2 < 0). shouldn't that be if (__pyx_2 != 0) ? this is failing for me. __pyx_2 = PyObject_IsTrue(__pyx_1); if (__pyx_2 < 0) { } of course the fix is easy... just compare the if with something explicit. bryan