Fair enough. I thought mIRC had its own sockets library doing socket I/O of your own design. I was under that impression because other clients in my possession which themselves use winsock were not having the same problem under the same circumstances (as per my original screen capture at http://img152.imageshack.us/img152/9743/toofast.png).

So ... if winsock does not expose programs to teardown handshakes, does this mean some of the [10053] errors people receive elsewhere are essentially unfixable -- and that they are unfixable because of Microsoft stupidity?

See, my impression was that the 10053 was happening in the login sequence as a result of mIRC sending anything (not just login commands themselves -- but any commands) to a remote Windows server after that remote Windows server began a teardown handshake (which, due to internet lag, really means mIRC innocently sends its data before it sees the remote teardown packets locally arrive, but that the remote side thinks mIRC sent that data afterwards). But since you now say this all depends entirely on winsock, the issue instead appears to become this: local winsock spews 10053 if remote teardown sequence changes midway from FIN/FIN ACK/FIN/FIN ACK to Windows-style FIN/[...]/RST ACK sequence (but not if remote teardown sequence changes midway from a FIN/FIN ACK/FIN/FIN ACK to Linux-style FIN/[...]/RST sequence.)

If I am correct about that, then I'm wondering if the cause of other ambiguous [10053] errors is: a Windows server initiating a sudden TCP teardown sequence at exactly the same time as mIRC sends (a) a user /msg, or (b) a script-initiated server command, or (c) mIRC sends a PING (or replies to a server PING with a PONG), or (d) (insert something else sent here).

This is only a curiosity. If it's true, I wouldn't be surprised that Microsoft made winsock incompatible with other winsocks in this scenario -- but what would be surprising is that they made it compatible with other linsocks in said scenario. wink