http://bugs.winehq.org/show_bug.cgi?id=24101
--- Comment #37 from Ken Thomases ken@codeweavers.com 2010-09-23 12:57:48 CDT --- (In reply to comment #36)
I suppose there could be a bug in the kernel such that the file object is not independent of the sending user process until it's been copied to the receiving process.
Another theory is that, since the fd is a socket, the close() is doing an implicit shutdown(SHUT_RDWR). So, the receiver is getting a file descriptor which is still open, nominally, but can't be used for reading or writing.