diff --git a/src/user.cpp b/src/user.cpp index bedf30e63ecd74150d12ca6e01e0077dc4b74c9e..a4a2214b0ebc7f0b60ef8e2f826371d8c72e8022 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -191,7 +191,9 @@ void User::handleDisconnected(const std::string &error) { // Once in finishSession and once in m_userManager->removeUser. if (m_component->inServerMode()) { dynamic_cast(m_component->getStanzaChannel())->finishSession(m_jid, boost::shared_ptr(new Swift::StreamError())); - m_userManager->removeUser(this); + if (!m_readyForConnect) { + m_userManager->removeUser(this); + } } else { m_userManager->removeUser(this);