Consider this class class CImageObject(Photo.Photo): def tag(self, REQUEST=None, display=None, pdcookie=None, height=None, width=None, alt=None, **args): print "proof that CImageObject is the class used" [...my magic on top of Photo...] # the below line is line 48 Photo.Photo.tag(self,REQUEST, display,pdcookie, height,width,alt,args) The Photo class is the Photo product. The tag function looks like this: def __call__(self, REQUEST=None, display=None, pdcookie=None, height=None, width=None, alt=None, **args): " bla bla bla " tag = __call__ My class is called from DTML like this <dtml-var "an_image.tag(border=1,alt='',width=9)"> That's when I get the strange error: Error Type: TypeError Error Value: too many arguments; expected 7, got 8 (Object: tag) File C:\Program Files\zope\lib\python\Products\n4a\medialibrary_zb\medialibrarydata.py, line 48, in tag (Object: 200110.jpeg) TypeError: (see above) If you count them, they match like they should. Our class used to subclass the Image product before, in which's tag() method also has 8 arguments. Does anybody know what's going on? Cheers, Peter