Hello Khaled, thank you for your feedback and clarifications.
Related to the socklisten, even when mirc can't bind a socket (after closing a listening socket), I am able to use it with any other application (as long there is no listen on that port using the netstat -an).
I have been working with sockets for several years with java and lately with .net, and the situations I found with this error were only when the port was actually binded (confirmed with the netstat).
I remember that before you made the first change (some years ago) it was actually working well.
By then you did the change to fix any particular error or was to update the socket handling?