diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java index 17d0f824c..1710c17e2 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetPersistentPresenceJabberImpl.java @@ -844,6 +844,30 @@ else if(evt.getNewState() == RegistrationState.UNREGISTERED , oldContactStatus, JabberStatusEnum.OFFLINE); } } + + //do the same for all contacts in the root group + Iterator contactsIter + = getServerStoredContactListRoot().contacts(); + + while (contactsIter.hasNext()) + { + ContactJabberImpl contact + = (ContactJabberImpl) contactsIter.next(); + + PresenceStatus oldContactStatus + = contact.getPresenceStatus(); + + if (!oldContactStatus.isOnline()) + continue; + + contact.updatePresenceStatus(JabberStatusEnum.OFFLINE); + + fireContactPresenceStatusChangeEvent( + contact + , contact.getParentContactGroup() + , oldContactStatus, JabberStatusEnum.OFFLINE); + } + } } }