This doesn't sound like an mIRC problem at all. IRC is a protocol that uses half-open sockets, which means it doesn't need to be sending and receiving packets constantly, the socket is held open in the event that data needs to be sent or data is received. If you close the socket and don't "tell" the server you're quitting, the server wouldn't know it because it wasn't told you quit, therefor you'd still appear on the IRC server. To battle this, IRC servers setup timer pings (which your client needs to respond to) to make sure you're still connected. If a ping isn't responded to within a set period of time, a ping timeout results (for the ghost nick). Obviously, if the client doesn't do a form of connectivity checking, it would never know if the socket has been disconnected from the server, since it's in a half-open state... it only becomes evident once the client tries to send data on the socket, which of course would fail, since it isn't really connected to anything. So, if for any reason you or your ISP had connectivity problems and your client couldn't respond to the a periodic ping, this could be a reason for the server closing up on their end, but there can be several other reasons, all based around the same concept.