diff --git a/control/json/manager.cpp b/control/json/manager.cpp
index b5c517f..2351597 100644
--- a/control/json/manager.cpp
+++ b/control/json/manager.cpp
@@ -417,16 +417,12 @@
                 auto servIter = pathIter->second.find(itServ.first);
                 if (servIter != pathIter->second.end())
                 {
-                    // Service found in cache
-                    for (auto& itIntf : itServ.second)
+                    if (std::find(servIter->second.second.begin(),
+                                  servIter->second.second.end(),
+                                  intf) == servIter->second.second.end())
                     {
-                        if (std::find(servIter->second.second.begin(),
-                                      servIter->second.second.end(),
-                                      itIntf) == servIter->second.second.end())
-                        {
-                            // Add interface to cache
-                            servIter->second.second.emplace_back(itIntf);
-                        }
+                        // Add interface to cache
+                        servIter->second.second.emplace_back(intf);
                     }
                 }
                 else
