diff --git a/src/common/connection.py b/src/common/connection.py
index fadd595488a3824ca061186d6dcee3745c178c9c..86c5b72144e91ad0fc9ec53a9622644ec2239b5d 100644
--- a/src/common/connection.py
+++ b/src/common/connection.py
@@ -615,11 +615,11 @@ def _connect_success(self, con, con_type):
 		if _con_type != self._current_type:
 			self.connect_to_next_type()
 			return
+		con.RegisterDisconnectHandler(self._on_disconnected)
 		if _con_type == 'plain' and gajim.config.get_per('accounts', self.name,
 		'warn_when_plaintext_connection'):
 			self.dispatch('PLAIN_CONNECTION', (con,))
 			return True
-		con.RegisterDisconnectHandler(self._on_disconnected)
 		if _con_type in ('tls', 'ssl') and not hasattr(con.Connection,
 		'_sslContext') and gajim.config.get_per('accounts', self.name,
 		'warn_when_insecure_ssl_connection') and \