Well, it's right there in the Python:
def awake(self,trans): self.__class__.__bases__[0].awake(self, trans) self.initPSP() That looks like it's basically just to put in that .initPSP() hook. It's kind of lame, but SecureMixIn could have a method: def awake(self, trans): SiteLayout.awake(self, trans) This hard-codes what SecureMixIn mixes in to. Otherwise you could do self.__class__.__bases__[1].awake(self, trans), which would be slightly more general. I can't think of a good way to have PSP do this. Unless perhaps it used the new-and-fancy super() call (which I don't completely understand yet). Or PSP could add something to __init__, like: def __init__(self): self._realAwake = self.awake self.awake = self._pspAwake def pspAwake(self, trans): self._realAwake(trans) self.initPSP() That might work well for multiple inheritance. -- Ian Bicking Colorstudy Web Development [EMAIL PROTECTED] http://www.colorstudy.com PGP: gpg --keyserver pgp.mit.edu --recv-keys 0x9B9E28B7 4869 N Talman Ave, Chicago, IL 60625 / (773) 275-7241 ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ Webware-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-devel