diff --git a/include/EntityManager.hpp b/include/EntityManager.hpp
index f443874..2d79e1f 100644
--- a/include/EntityManager.hpp
+++ b/include/EntityManager.hpp
@@ -72,8 +72,7 @@
                 std::function<void()>&& callback);
     void updateSystemConfiguration(const nlohmann::json& recordRef,
                                    const std::string& probeName,
-                                   FoundDevices& foundDevices,
-                                   const MapperGetSubTreeResponse& dbusSubtree);
+                                   FoundDevices& foundDevices);
     void run(void);
     virtual ~PerformScan();
     nlohmann::json& _systemConfiguration;
diff --git a/src/PerformProbe.cpp b/src/PerformProbe.cpp
index 7c5a2b2..af9373c 100644
--- a/src/PerformProbe.cpp
+++ b/src/PerformProbe.cpp
@@ -231,7 +231,6 @@
     FoundDevices foundDevs;
     if (probe(_probeCommand, scan, foundDevs))
     {
-        scan->updateSystemConfiguration(recordRef, probeName, foundDevs,
-                                        scan->dbusProbeObjects);
+        scan->updateSystemConfiguration(recordRef, probeName, foundDevs);
     }
 }
diff --git a/src/PerformScan.cpp b/src/PerformScan.cpp
index c81557f..144b824 100644
--- a/src/PerformScan.cpp
+++ b/src/PerformScan.cpp
@@ -464,9 +464,9 @@
     return copyIt.value();
 }
 
-void PerformScan::updateSystemConfiguration(
-    const nlohmann::json& recordRef, const std::string& probeName,
-    FoundDevices& foundDevices, const MapperGetSubTreeResponse& dbusSubtree)
+void PerformScan::updateSystemConfiguration(const nlohmann::json& recordRef,
+                                            const std::string& probeName,
+                                            FoundDevices& foundDevices)
 {
     _passed = true;
     passedProbes.push_back(probeName);
@@ -515,9 +515,10 @@
         // interface, such as if it was just TRUE, then
         // templateCharReplace will just get passed in an empty
         // map.
-        auto objectIt = dbusSubtree.find(path);
-        const DBusObject& dbusObject =
-            (objectIt == dbusSubtree.end()) ? emptyObject : objectIt->second;
+        auto objectIt = dbusProbeObjects.find(path);
+        const DBusObject& dbusObject = (objectIt == dbusProbeObjects.end())
+                                           ? emptyObject
+                                           : objectIt->second;
 
         nlohmann::json record = recordRef;
         std::string recordName = getRecordName(foundDevice, probeName);
