diff --git a/src/hostinfo/networkmanager.py b/src/hostinfo/networkmanager.py
index 1754902e6c265f191a0b950df606af3fa32088d4..aec2f08872757b6a14ed71ca5a896b47c8253ae6 100644
--- a/src/hostinfo/networkmanager.py
+++ b/src/hostinfo/networkmanager.py
@@ -28,25 +28,32 @@ class Network(object):
         self._tun = {}
         self._connection = {}
         # Get devices from network manager
+        def is_kind(device, kind):
+            device_class = getattr(NetworkManager, kind, None)
+            if device_class == None:
+                print('%s not defined in this version of NetworkManager' % kind)
+                return False
+            return isinstance(device, device_class)
+             
         for d in NetworkManager.NetworkManager.AllDevices:
-            if isinstance(d, NetworkManager.Generic):
+            if is_kind(d, 'Generic'):
                 pass
-            elif isinstance(d, NetworkManager.Dummy):
+            elif is_kind(d, 'Dummy'):
                 pass
-            elif isinstance(d, NetworkManager.Wireless):
+            elif is_kind(d, 'Wireless'):
                 pass
-            elif isinstance(d, NetworkManager.WireGuard):
+            elif is_kind(d, 'WireGuard'):
                 pass
-            elif isinstance(d, NetworkManager.Wired):
+            elif is_kind(d, 'Wired'):
                 self._wired[d.HwAddress.lower()] = d
                 pass
-            elif isinstance(d, NetworkManager.Bridge):
+            elif is_kind(d, 'Bridge'):
                  self._bridge[d.HwAddress.lower()] = d
                  pass
-            elif isinstance(d, NetworkManager.IPTunnel):
+            elif is_kind(d, 'IPTunnel'):
                 self._ip_tunnel[d.Interface] = d
                 pass
-            elif isinstance(d, NetworkManager.Tun):
+            elif is_kind(d, 'Tun'):
                 self._tun[d.Interface] = d
                 pass
             else: