diff --git a/src/buddy.cpp b/src/buddy.cpp index 300053cf3d0a20d4f05c9d32654d685af042e10c..4c1120526c570941ca805b3472023cd6b0bb455d 100644 --- a/src/buddy.cpp +++ b/src/buddy.cpp @@ -103,15 +103,19 @@ Swift::Presence::ref Buddy::generatePresenceStanza(int features, bool only_new) } Swift::Presence::ref presence = Swift::Presence::create(); - presence->setFrom(m_jid); presence->setTo(m_rosterManager->getUser()->getJID().toBare()); presence->setType(Swift::Presence::Available); if (!statusMessage.empty()) presence->setStatus(statusMessage); - if (s.getType() == Swift::StatusShow::None) + if (s.getType() == Swift::StatusShow::None) { presence->setType(Swift::Presence::Unavailable); + presence->setFrom(Swift::JID(m_jid.getNode(), m_jid.getDomain())); + } + else { + presence->setFrom(m_jid); + } presence->setShow(s.getType()); if (presence->getType() != Swift::Presence::Unavailable) {