Logged In: YES user_id=80475 Underneath the hood, test's setattr is accessing the dictionary directly instead of going through its __setattr__ slot. While this one is fixable, I'm not sure it's really a bug. There are no documentation promises that things like setattr won't make direct accesses to the underlying dictionary. Python's implementation has tons of direct access code -- the reasons include clarity, speed, avoidance of hard to debug code paths, or just not having been looked at in this way. In any case, I would not have expected old style classes like 'test' to know about new style subclasses. For the use cases modeled after the OP's code, overiding setattr in 'test' is likely the way to go.
Logged In: YES user_id=33168 I agree with Raymond. I think this pretty much the design and should not be fixed. Therefore, I'm closing this report. Viktor, if you disagree, you might try discussing this on comp.lang.python or brining up this issue on python-dev. Feel free to comment here if you would like clarifications.