diff --git a/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java b/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java index e8055d3c8..20634dc90 100644 --- a/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java +++ b/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java @@ -286,8 +286,16 @@ private void removeChatProvider(ChatRoomProviderWrapper chatRoomProvider, } for(int i = 0; i < chatRoomProvider.countChatRooms(); i++) - MUCActivator.getUIService().closeChatRoomWindow( - chatRoomProvider.getChatRoom(i)); + { + ChatRoomWrapper wrapper = chatRoomProvider.getChatRoom(i); + MUCActivator.getUIService().closeChatRoomWindow(wrapper); + + // clears listeners added by chat room + wrapper.removeListeners(); + } + + // clears listeners added by the system chat room + chatRoomProvider.getSystemRoomWrapper().removeListeners(); fireProviderWrapperRemoved(chatRoomProvider); }