Thanks to those who responded with some ideas regarding my RESPONSE.write problem - but it's still not working! Based on the responses I now have a dtml method containing (note: I have tried it with and without the Transfer-Encoding header): <dtml-call "RESPONSE.setHeader('Transfer-Encoding', 'chunked')"> <dtml-call "RESPONSE.setHeader('Content-Type', 'text/plain')"> <dtml-call "RESPONSE.write('Starting\n')"> <dtml-call "RESPONSE.flush()"> <dtml-call "wait(5)"> <dtml-call "RESPONSE.write('Done\n')"> <dtml-call "RESPONSE.flush()"> The 'wait' routine is still a simple external method: import time def wait(self, secs): time.sleep(secs) return What I expected to see was the word 'Started' displayed in my browser, followed by a 5 second delay, and then see the word 'Done' displayed. What I get is a 5 second delay and then both 'Started' and 'Done" appear at the same time. FYI: I am running zope 2.6.1, python 2.1.3, RedHat linux 2.4.20, Apache 1.3.26 Any other ideas would be great! Thanks again, Jonathan