diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java index b80f3582d..800b50555 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java @@ -212,7 +212,12 @@ public class MultiUserChat { switch (presence.getType()) { case available: Presence oldPresence = occupantsMap.put(from, presence); - if (oldPresence != null) { + if (mucUser.getStatus().contains(MUCUser.Status.PRESENCE_TO_SELF_110)) { + processedReflectedSelfPresence = true; + synchronized (this) { + notify(); + } + } else if (oldPresence != null) { // Get the previous occupant's affiliation & role MUCUser mucExtension = MUCUser.from(oldPresence); MUCAffiliation oldAffiliation = mucExtension.getItem().getAffiliation(); @@ -228,11 +233,6 @@ public class MultiUserChat { newAffiliation, isUserStatusModification, from); - } else if (mucUser.getStatus().contains(MUCUser.Status.PRESENCE_TO_SELF_110)) { - processedReflectedSelfPresence = true; - synchronized (this) { - notify(); - } } else { // A new occupant has joined the room for (ParticipantStatusListener listener : participantStatusListeners) {