diff --git a/src/dialogs.py b/src/dialogs.py
index 623445b34dfd95ecafbc922c1d3d3235ec27ec1c..803835e421ca34d2611e08561ddd1ac58cacf7f0 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -2443,13 +2443,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 a39be727eca27cbe37f0af511bbad90c5f8190cf..4a0fa08bfebb1a32766f5b57ffd83ee95298cc35 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -1909,6 +1909,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]
 
@@ -2414,7 +2420,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: