Friends, I have an external method that returns a string containing dtml, but I want it to evaluate the dtml and return the result. How do I do that? I noticed in, say, /usr/share/zope/lib/python/Products/ExternalMethod/ExternalMethod.py, that dtml-containing *files* are used as object methods like this: from Globals import HTMLFile manage_main = HTMLFile( 'methodEdit', globals() ) so I figured I could do a similar thing with a dtml-containing string and an external method: from Globals import HTML dtml_string = '<dtml-let x="it works"><dtml-var x></dtml-let>' external_method = HTML( dtml_string, globals() ) This in fact works, but if I try to reference anything in the current object, like dtml_string = '<dtml-var id>' I get KeyError: id. Apparently I'm getting dtml evaluation but not in the context of the current object. What am I doing wrong, and (for extra credit) why doesn't ExternalMethod.py have this problem using HTMLFile? TIA, Scott PS: I know I can get the id with def external_method( self, REQUEST = None ): return self.id but the real dtml_string I need to evaluate is much more complicated than '<dtml-var id>'...