- // we're never going to become ready if we're not connected (any more)
- if ( !m_connected && !m_establishing )
+ // we're never going to become ready in a client if we're not connected any
+ // more (OTOH a server can call this to precisely wait for a connection so
+ // do wait for it in this case)
+ if ( !m_impl->IsServer() && !m_connected && !m_establishing )