diff --git a/src/handler.cpp b/src/handler.cpp
index 8caba42..9a5244e 100644
--- a/src/handler.cpp
+++ b/src/handler.cpp
@@ -5,6 +5,7 @@
 #include <xyz/openbmc_project/Common/error.hpp>
 
 #include <algorithm>
+#include <iterator>
 #include <string>
 #include <unordered_set>
 #include <utility>
@@ -176,8 +177,10 @@
         if (thisPath.starts_with(reqPath))
         {
             // count the number of slashes past the stripped search term
-            int32_t thisDepth = std::count(
-                thisPath.begin() + reqPathStripped.size(), thisPath.end(), '/');
+            auto thisDepth = std::count(
+                thisPath.begin() + std::distance(reqPathStripped.begin(),
+                                                 reqPathStripped.end()),
+                thisPath.end(), '/');
             if (thisDepth <= depth)
             {
                 for (const auto& interfaceMap : objectPath.second)
@@ -244,8 +247,10 @@
         if (thisPath.starts_with(reqPath))
         {
             // count the number of slashes past the stripped search term
-            int thisDepth = std::count(
-                thisPath.begin() + reqPathStripped.size(), thisPath.end(), '/');
+            auto thisDepth = std::count(
+                thisPath.begin() + std::distance(reqPathStripped.begin(),
+                                                 reqPathStripped.end()),
+                thisPath.end(), '/');
             if (thisDepth <= depth)
             {
                 bool add = interfaces.empty();
