diff --git a/src/dialogs.py b/src/dialogs.py
index 976510ec7bdf04b4ac92478a580d344bd15dab3f..42590d06801b54ad1ffae8bf199d773e64a3f30f 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -2245,6 +2245,14 @@ class JoinGroupchatWindow:
                 self._empty_required_widgets.remove(widget)
             if len(self._empty_required_widgets) == 0 and self.account:
                 self.xml.get_object('join_button').set_sensitive(True)
+            text = self._room_jid_entry.get_text()
+            if widget == self._room_jid_entry and text.find('@') > -1:
+                # Don't allow @ char in room entry
+                room_jid, server = text.split('@', 1)
+                self._room_jid_entry.set_text(room_jid)
+                if server:
+                    self.server_comboboxentry.child.set_text(server)
+                self.server_comboboxentry.grab_focus()
 
     def on_account_combobox_changed(self, widget):
         model = widget.get_model()