If you have read the document I referred you to, did you also read the example where classes M1, M2, M3 and M4 were defined?
A quote from the discussion of that example: "For class D, the explicit metaclass M1 is not a subclass of the base metaclasses (M2, M3), but choosing M3 satisfies the constraint, so D.__class__ is M3." Isn't that exactly what you are doing? -- http://mail.python.org/mailman/listinfo/python-list