diff --git a/gajim/common/modules/discovery.py b/gajim/common/modules/discovery.py
index 817d3d285c3518efd383e1ca5008dda3bb8ba28a..adc986942c13afe86f2fd0847418829b77de75e1 100644
--- a/gajim/common/modules/discovery.py
+++ b/gajim/common/modules/discovery.py
@@ -138,9 +138,7 @@ def _server_info_received(self, result):
         self._con.get_module('VCardTemp').pass_disco(result)
         self._con.get_module('Carbons').pass_disco(result)
         self._con.get_module('HTTPUpload').pass_disco(result)
-
-        if Namespace.REGISTER in result.features:
-            self._con.register_supported = True
+        self._con.get_module('Register').pass_disco(result)
 
         self._con.connect_machine(restart=True)
 
diff --git a/gajim/common/modules/register.py b/gajim/common/modules/register.py
index 5e96001b2af91875e0133e6b17357103d2fb6bab..cb348ef77b184b1ef853bd0f8a7d3274394b26e7 100644
--- a/gajim/common/modules/register.py
+++ b/gajim/common/modules/register.py
@@ -38,6 +38,11 @@ def __init__(self, con):
 
         self.agent_registrations = {}
 
+        self.supported = False
+
+    def pass_disco(self, info):
+        self.supported = Namespace.REGISTER in info.features
+
     def register_agent(self, agent, form, is_form, success_cb, error_cb):
         if not app.account_is_available(self._account):
             return
diff --git a/gajim/gtk/server_info.py b/gajim/gtk/server_info.py
index def25ee094a8f6fb902565a739f1211b61d35996..6f1886661b73b1311c759d1ab4237fe5f8a8bde9 100644
--- a/gajim/gtk/server_info.py
+++ b/gajim/gtk/server_info.py
@@ -262,6 +262,8 @@ def get_features(self):
                     con.get_module('MUC').supported),
             Feature('XEP-0054: vcard-temp',
                     con.get_module('VCardTemp').supported),
+            Feature('XEP-0077: In-Band Registration',
+                    con.get_module('Register').supported),
             Feature('XEP-0163: Personal Eventing Protocol',
                     con.get_module('PEP').supported),
             Feature('XEP-0163: #publish-options',
diff --git a/gajim/gtk/settings.py b/gajim/gtk/settings.py
index d92dd65ad8b9d526edaf1d25a082bddab878de7b..60e3ef4134a3e8e85017ebd3fefbbb46ee27abe8 100644
--- a/gajim/gtk/settings.py
+++ b/gajim/gtk/settings.py
@@ -674,5 +674,6 @@ def update_activatable(self, name, value):
         activatable = False
         if self.account in app.connections:
             con = app.connections[self.account]
-            activatable = con.state.is_available and con.register_supported
+            activatable = (con.state.is_available and
+                           con.get_module('Register').supported)
         self.set_activatable(activatable)