It just thought about the fact that zope on linux seemingly does ignore when the user presses of the stop on his browser. I.e., if you access a e.g. long running python(script) and press "Stop" on the browser and you'll see the thread which runs the script is still working. Extremely ugly IMO. Well, it also happens on win. I just looked at asyncore.dispatcher, and there's the recv() method: def recv (self, buffer_size): try: ... except socket.error, why: # winsock sometimes throws ENOTCONN if why[0] in [ECONNRESET, ENOTCONN, ESHUTDOWN]: self.handle_close() return '' else: raise socket.error, why The browser closes the connection when the Stop button is pressed, that means that the recieving end gets a RST, and that seems to throw a socket.error, with why[0] == ECONNRESET. Well, I know jack about the python socket class, but a strategical placed "print" tells more than a thousand words ;-). handle_close() doesn't also do much, just logs and closes the connection. So, the poor thread never does never find out about the fact that all his work is for nothing, and happily continues. Can't this be fixed anyhow? cheers, oliver