http://bugs.winehq.org/show_bug.cgi?id=29168
--- Comment #77 from talchas@gmail.com 2012-01-04 09:46:42 CST --- It is called with status 0 because the socket has closed and if you read the wineserver socket code, it calls with 0 in the case of POLLERR/POLLHUP.
If you watch the log or turn on timestamps, (and particularly if you correlate them with a wireshark log running at the same time) you'll see that this happens a while after the 22 read, and at the same time as wireshark reports the socket being closed by the server. So for whatever reason it is not replying to the message sent by the server (_maybe_ just not fast enough) and/or not realizing the message was sent (although the behavior looks right).