its possible to write async dtml method without spawning a new thread by integrating with asyncore. although its tricky you can still get transaction integrity by having by having a before async call transaction and another transaction when the method returns (it will probably get serviced by another thread). except for some really extreme cases this is not nesc and normally the problem is better solved by other means. one case that does come to mind, is when you have potentially long external interaction with foriegn servers. if anyone's interested in some sample code, feel free to email me. I have been working on portals like my.yahoo.com recently that rely on foriegn servers to provide portal content so this is a good use case I think. Non only do you need to do this but you also need to time out any souce that does not respond in say 10 secs, else the time to build the mypage is intolerable. Plumtree has been advertising as "massively parallel" by which they mean they doe this data source gathering in parallel. In fact I have used Zope as a gadget server for Plumtree and one show stopper is the fact that Zope itself will hang up when I have been using ZGDChart with either the ZmxODBC or ZODBC database connectors on a Win2K box when a database connection goes down. ZmxODBC behaves somewhat better but utimately with enough hits Zope hangs up. I simply had to not use this gadget I made. Regards, Albert Boulanger aboulanger@vpatch.com