In sipGetThis, there is the code fragment: if (thisObj != NULL) { // sipParseArgs() will decrement the reference count. Py_INCREF(arg); return (sipThisType *)thisObj; } The comment appears not to be true, and the arg tuple passed to sipParseArgs never gets gc'ed as a result of the incref. commenting it out fixed the problem. Toby.