diff --git a/src/gajim.py b/src/gajim.py
index 380869773156e84fbfdeb552fbae62156792cdcd..d0fcf0c7b2924bf212d27e77e0b2a86013dad95a 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -2370,9 +2370,8 @@ class Interface:
 			self.remote_ctrl = None
 
 		if gajim.config.get('networkmanager_support') and dbus_support.supported:
-			try:
-				import network_manager_listener
-			except:
+			import network_manager_listener
+			if not network_manager_listener.supported:
 				print >> sys.stderr, _('Network Manager support not available')
 
 		self.show_vcard_when_connect = []
diff --git a/src/network_manager_listener.py b/src/network_manager_listener.py
index aeeb13a345f61dc7e83b777194dc568c369a1917..00300232a7807f28ea6617075b52559e8f5952f9 100644
--- a/src/network_manager_listener.py
+++ b/src/network_manager_listener.py
@@ -27,23 +27,23 @@ def device_no_longer_active(self, *args):
 		'listen_to_network_manager') and connection.connected > 1:
 			connection._disconnectedReconnCB()
 
-
-from common.dbus_support import system_bus
-
-import dbus
-import dbus.glib
-
-bus = system_bus.SystemBus()
-
-bus.add_signal_receiver(device_no_longer_active,
-	'DeviceNoLongerActive',
-	'org.freedesktop.NetworkManager',
-	'org.freedesktop.NetworkManager',
-	'/org/freedesktop/NetworkManager')
-
-bus.add_signal_receiver(device_now_active,
-	'DeviceNowActive',
-	'org.freedesktop.NetworkManager',
-	'org.freedesktop.NetworkManager',
-	'/org/freedesktop/NetworkManager')
-
+supported = False
+
+try:
+	from common.dbus_support import system_bus
+
+	bus = system_bus.SystemBus()
+
+	if 'org.freedesktop.NetworkManager' in bus.list_names():
+		supported = True
+		bus.add_signal_receiver(device_no_longer_active,
+			'DeviceNoLongerActive',
+			'org.freedesktop.NetworkManager',
+			'org.freedesktop.NetworkManager',
+			'/org/freedesktop/NetworkManager')
+
+		bus.add_signal_receiver(device_now_active,
+			'DeviceNowActive',
+			'org.freedesktop.NetworkManager',
+			'org.freedesktop.NetworkManager',
+			'/org/freedesktop/NetworkManager')