Thank you for a reasonable discussion of the problem, although I don't really understand what you said. This is a WSGI webapp configured for one-process and one-thread.
I can imagine my unorthodox handling of imported modules is suspect. To explain, my webapp first loads modules from a dict of allowed pages: __init__ for module in self.allowedPages: try: self.Pages[module]=getattr(__import__(module), module) This gives me a dict of objects like this: self.Pages {'Yijing': <Yijing.YijingProto object at 0x1067a4f90>, 'Strand': <Strand.StrandProto object at 0x1067b52d0>, 'Gnomon': <Gnomon.GnomonProto object at 0x10675a450>, 'Lexicon': <Lexicon.LexiconProto object at 0x1067c4a50>, 'Dream': <Dream.DreamProto object at 0x106800a50>, 'Grid': <Grid.GridProto object at 0x1067ac310>} I can then extract the first query string variable name and get the page content: __call__ page='Gnomon' xml=self.Pages[page](EnvDict, qList) # sends environ & query list I don't know how several modules are normally handled in a CGI webapp, but this homegrown system has served me well. Threadlocking, however, may find this sort of referencing problematic. That would be my first suspicion. -- Gnarlie -- http://mail.python.org/mailman/listinfo/python-list