diff --git a/tests/unittests/unit/net/net_util_test.py b/tests/unittests/unit/net/net_util_test.py
index 1ceaf4573..870801666 100755
--- a/tests/unittests/unit/net/net_util_test.py
+++ b/tests/unittests/unit/net/net_util_test.py
@@ -6,6 +6,7 @@

 import unittest

+from collections import defaultdict
 from xpra.net.net_util import (
     get_info, get_interfaces, get_interfaces_addresses, #get_interface,
     get_gateways, get_bind_IPs, do_get_bind_ifacemask,
@@ -26,10 +27,8 @@ class TestVersionUtilModule(unittest.TestCase):
         ifaces = get_interfaces()
         if not ifaces:
             return
+        ip_ifaces = defaultdict(list)
         for iface in ifaces:
-            ipmasks = do_get_bind_ifacemask(iface)
-            for ip, _ in ipmasks:
-                assert get_iface(ip)==iface
             if if_nametoindex:
                 try:
                     i = if_nametoindex(iface)
@@ -37,7 +36,14 @@ class TestVersionUtilModule(unittest.TestCase):
                     pass
                 else:
                     if if_indextoname:
-                        assert if_indextoname(i)==iface
+                        assert if_indextoname(i)==iface, "expected interface %s for index %i but got %s" % (
+                            iface, i, if_indextoname(i))
+            ipmasks = do_get_bind_ifacemask(iface)
+            for ip, _ in ipmasks:
+                ip_ifaces[ip].append(iface)
+        for ip, ifaces in ip_ifaces.items():
+            assert get_iface(ip) in ifaces, "expected interface for ip %s to be one of %s but got %s" % (
+                    ip, ifaces, get_iface(ip))
         ia = get_interfaces_addresses()
         assert ia
         #for iface, address in ia.items():
