diff --git a/src/dialogs.py b/src/dialogs.py
index f2f3fc0f0587041ab2b6c3b8cd407bffc14ad280..f7b6b5f0b9b73a5f5ab2b577ee0a853819d4897e 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -2335,13 +2335,10 @@ class JoinGroupchatWindow:
                     _('The group chat Jabber ID has not allowed characters.'))
             return
 
-        if gajim.interface.msg_win_mgr.has_window(room_jid, self.account):
-            ctrl = gajim.interface.msg_win_mgr.get_gc_control(room_jid,
-                    self.account)
-            if ctrl.type_id != message_control.TYPE_GC:
-                ErrorDialog(_('This is not a group chat'),
-                        _('%s is not the name of a group chat.') % room_jid)
-                return
+        if gajim.contacts.get_contact(self.account, room_jid):
+            ErrorDialog(_('This is not a group chat'),
+                _('%s is not the name of a group chat.') % room_jid)
+            return
         if room_jid in self.recently_groupchat:
             self.recently_groupchat.remove(room_jid)
         self.recently_groupchat.insert(0, room_jid)
diff --git a/src/gui_interface.py b/src/gui_interface.py
index 0bd4776f2e697ffe44a01ff4e601a15fccb3375e..a866c7c02fce82f1527ae53d05394f5d4026a522 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -2666,6 +2666,12 @@ class Interface:
         """
         Join the room immediately
         """
+
+        if gajim.contacts.get_contact(account, room_jid):
+            dialogs.ErrorDialog(_('This is not a group chat'),
+                _('%s is not the name of a group chat.') % room_jid)
+            return
+
         if not nick:
             nick = gajim.nicks[account]
 
@@ -3158,7 +3164,7 @@ class Interface:
                 if not jid in gajim.gc_connected[account]:
                     # we are not already connected
                     minimize = bm['minimize'] in ('1', 'true')
-                    gajim.interface.join_gc_room(account, jid, bm['nick'],
+                    self.join_gc_room(account, jid, bm['nick'],
                     bm['password'], minimize = minimize)
                 elif jid in self.minimized_controls[account]:
                     # more or less a hack: