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 999a7d306..5c3f687c4 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 @@ -258,13 +258,14 @@ public class MultiUserChat { break; case unavailable: occupantsMap.remove(from); - if (mucUser != null && mucUser.hasStatus()) { - if (isUserStatusModification) { + Set status = mucUser.getStatus(); + if (mucUser != null && !status.isEmpty()) { + if (isUserStatusModification && !status.contains(MUCUser.Status.NEW_NICKNAME_303)) { userHasLeft(); } // Fire events according to the received presence code checkPresenceCode( - mucUser.getStatus(), + status, isUserStatusModification, mucUser, from);