caused by a misunderstanding of the sockets API by the WinSock programmers. The correct meaning of shutdown() on Unix is to throw away any outstanding data and close the socket immediately. Normally, when you close a socket, you do want to let any pending data get across, so it's rarely used. On Windows shutdown() does not throw away data, and should be called. (Trust M$ to get it backwards and force everybody else to adapt.) So the patch cannot go in as is, because I think it will break Unix. Something like it can go in, #ifdefed for W32. -- Martin