I've created a BasicMethod which is derived from the DTMLMethod. everything works great until I try to have the sub class's (BasicMethod) __call__ method call the super class's (DTMLMethod) __call__ method. class BasicMethod(DTMLMethod): """BasicMethod objects are DocumentTemplate.HTML objects that act as methods whose 'self' is the BasicMethod itself.""" meta_type='Basic Method' def __call__(self, client=None, REQUEST={}, RESPONSE=None, **kw): print 'Sub Class __call__' DTMLMethod.__call__(self, client, REQUEST, RESPONSE, kw) Globals.default__class_init__(BasicMethod) when I view the BasicMethod in Zope, I get: Error Type: TypeError Error Value: too many arguments; expected 4, got 5 I believe that I need the self arg, if I remove it I get an unbound python method error. Any thoughts??? DR