I was trying to fix some bugs in itertools -- in particular, ifilterfalse() (called with no args) is not throwing a TypeError. Upon some investigation it seems that __init__() is not being called at all, regardless of the number of arguments passed in. Any idea why this might be the case? I have compared it with the code in to zipimport.zipimporter(), which uses a Java implementation of __init__ as well, and have not been able to find any significant differences.