Personally, I try to stay away from the WaitSelect() method. Instead I set up a socket event mask with SocketBaseTags, and use asynchrous non-blocking sockets. That way you can just use Wait( signal_mask | reaction_mask | whatever_mask ), and then see what needs attention.