diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java index 7aae196a825d2901f548cd255cffbd840bef516f..2a751d95e015b475dc940545c93197808e8ae98c 100644 --- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java +++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java @@ -250,12 +250,13 @@ public class MucOptions { old = findUserByRealJid(user.realJid); realJidFound = old != null; synchronized (users) { - if (old != null && old.fullJid == null) { + if (old != null && (old.fullJid == null || old.role == Role.NONE)) { users.remove(old); } } } old = findUserByFullJid(user.getFullJid()); + synchronized (this.users) { if (old != null) { users.remove(old);