diff --git a/src/PerformScan.cpp b/src/PerformScan.cpp
index 6cb6ef5..83768b7 100644
--- a/src/PerformScan.cpp
+++ b/src/PerformScan.cpp
@@ -111,12 +111,11 @@
                        const std::shared_ptr<PerformScan>& scan,
                        const GetSubTreeType& interfaceSubtree)
 {
-    boost::container::flat_set<
-        std::tuple<std::string, std::string, std::string>>
-        interfaceConnections;
-
     for (const auto& [path, object] : interfaceSubtree)
     {
+        // Get a PropertiesChanged callback for all interfaces on this path.
+        registerCallback(scan->_systemConfiguration, scan->objServer, path);
+
         for (const auto& [busname, ifaces] : object)
         {
             for (const std::string& iface : ifaces)
@@ -127,18 +126,10 @@
                 // with the GetAll call to save some cycles.
                 if (!boost::algorithm::starts_with(iface, "org.freedesktop"))
                 {
-                    interfaceConnections.emplace(busname, path, iface);
+                    getInterfaces({busname, path, iface}, probeVector, scan);
                 }
             }
         }
-
-        // Get a PropertiesChanged callback for all interfaces on this path.
-        registerCallback(scan->_systemConfiguration, scan->objServer, path);
-    }
-
-    for (const auto& call : interfaceConnections)
-    {
-        getInterfaces(call, probeVector, scan);
     }
 }
 
