diff --git a/src/userregistration.cpp b/src/userregistration.cpp index a13006ca8ad43e865dd2aa83e3b49f5cd06f1016..4160f9e078d97323eaa8050612b00cae7a693196 100644 --- a/src/userregistration.cpp +++ b/src/userregistration.cpp @@ -94,7 +94,15 @@ void UserRegistration::handleUnregisterRemoteRosterResponse(boost::shared_ptr roster; m_storageBackend->getBuddies(userInfo.id, roster); for(std::list::iterator u = roster.begin(); u != roster.end() ; u++){ - std::string name = Swift::JID::getEscapedNode((*u).legacyName); + std::string name = (*u).legacyName; + if ((*u).flags & BUDDY_JID_ESCAPING) { + name = Swift::JID::getEscapedNode((*u).legacyName); + } + else { + if (name.find_last_of("@") != std::string::npos) { + name.replace(name.find_last_of("@"), 1, "%"); + } + } Swift::Presence::ref response; response = Swift::Presence::create();