diff --git a/src/backend/OperatorImpl.cpp b/src/backend/OperatorImpl.cpp
index dd5c5c110154427a8af7afbf70b2c76b61e507a8..d2e68710b34f2a2e707810b276c138705c57eba0 100644
--- a/src/backend/OperatorImpl.cpp
+++ b/src/backend/OperatorImpl.cpp
@@ -128,8 +128,8 @@ Aidge::ImplSpec Aidge::OperatorImpl::getBestMatch(const ImplSpec& requiredSpecs)
             const auto qualifierPos = std::find_if(attrName.begin(), attrName.end(),
                 [](char c) { return c == ':'; });
             if (qualifierPos != attrName.end()) {
-                name = attrName.substr(0, qualifierPos - attrName.begin());
-                qualifier = attrName.substr(qualifierPos - attrName.begin() + 1);
+                name = attrName.substr(0, (qualifierPos - attrName.begin()));
+                qualifier = attrName.substr((qualifierPos - attrName.begin())+1);
             }
             const bool mandatory = (qualifier == "!");
             if (mandatory) {