Hello, friends. It may be that I am misunderstanding something fundamental. I have code that does essentially the following: (1) Defines an external method for processing form data: # In module MyModule: def myExtMethod(req): global Request Request = req action = getFormData("action") #...process request... # And a utility function to help out - this is not an # external method, but is used by myExtMethod. def getFormData(key): return Request.get(key) (2) Defines a DTML document that just passes its input along to myExtMethod(): ... <dtml-var expr="myExtMethod(REQUEST)"> ... The point of this is that myExtMethod() is a wrapper around some old CGI code; I want the state of MyModule to be preserved between invocations of myExtMethod(), for performance reasons. I've been working with Zope for only a very short time (days), so I don't know if this is the "right" way to do this; I'd appreciate any advice on this matter. Now the problem. This code works most of the time. However, apparently at random, when executing a request, I will get an exception from getFormData(): "global name Request does not exist." This is very strange, because /every/ invocation of getFormData() is called from myExtMethod(), so there's simply no way the Request global can be unset, as far as I can see. Can anyone explain what is happening here? A pointer to relevant documentation would be sufficient; I've got "The Zope Book" and "The Book of Zope", neither of which have been much help about this particular issue (though quite helpful in many other ways). Many thanks, -- Joe "I should like to close this book by sticking out any part of my neck which is not yet exposed, and making a few predictions about how the problem of quantum gravity will in the end be solved." --- Physicist Lee Smolin, "Three Roads to Quantum Gravity"