Hi Peter,
Hmm... I've never seen this problem, and I've been using pcgi/FreeBSD since 2.2.8. I have however seen another problem:
http://lists.zope.org/pipermail/zope/1999-December/016465.html
that has never really been resolved. I'm going to try your net.local magic to see if that has an effect. I tried the FreeBSD lists at one time, and never got any response. Maybe it's time to try them again....
I wasn't able to reproduce it on Zope. This is probably because I have since switched to using fast cgi which has fixed all my problems. I was able to reproduce it using your test script and just piping it to more. What's going on is that you are getting a broken pipe exception in self.stdout.write in HTTPResponse.write(), but that exception is getting masked somewhere which is why it seems mysterious as to what is happening. I have no idea why we get a broken pipe when piping that to more. I made a script: import sys file = open("fs.txt", "r") data = file.read(1024) while data: result = sys.stdout.write(data) data = file.read(1024) And piped that to more. Same problem. If I do 'cat fs.txt | more' it works fine. Upgrading my system from 4.0-RELEASE to 4.1-STABLE fixed this problem.