diff --git a/libtransport/ConversationManager.cpp b/libtransport/ConversationManager.cpp index 24678466da54d431fbbbb26dbafd43ad951c1dfb..021a9fc0760ae7526bfd3040295b34fa61c215d8 100644 --- a/libtransport/ConversationManager.cpp +++ b/libtransport/ConversationManager.cpp @@ -105,8 +105,12 @@ void ConversationManager::resetResources() { void ConversationManager::removeJID(const Swift::JID &jid) { std::vector toRemove; for (std::map::const_iterator it = m_convs.begin(); it != m_convs.end(); it++) { + if (it->first.empty() || !it->second) { + continue; + } + (*it).second->removeJID(jid); - if (it->second->getJIDs().empty()) { + if (it->second->getJIDs().empty() && (*it).second->isMUC()) { toRemove.push_back(it->first); } }