If mIRC is waiting for something, it has to be on a different server, because it joins 2 channels, waits a second or and so and then joins the other two, even though I have all four channels in a single /join. If mIRC is waiting for an identd respond, or just to start the connection process it has to be on another socket.

I did notice this only seems to happen if I start connecting to all 3 servers at around the same time. If one takes longer to lookup the server and one of them starts going ahead, it rarely freezes.