diff --git a/src/recipies/ExplicitConvert.cpp b/src/recipies/ExplicitConvert.cpp
index 59d30d16ac4bd823c0abd9c091105e7643c9cede..d25b133c3374029fe763dd9a4bbc98df58c45a0d 100644
--- a/src/recipies/ExplicitConvert.cpp
+++ b/src/recipies/ExplicitConvert.cpp
@@ -26,14 +26,15 @@ void Aidge::explicitConvert(std::shared_ptr<GraphView> graph) {
 
         if (node->type() == Convert_Op::Type) {
             // Remove existing Convert operator, if not needed anymore
-            const auto& parent = node->inputs()[0];
+            const auto parent = node->inputs()[0];
             const auto& input = std::static_pointer_cast<OperatorTensor>(parent.first->getOperator())->getOutput(parent.second);
 
             if (input->dataType() == output->dataType()
                 && (input->getImpl()->device() == device))
             {
                 // Add direct connection bypassing Convert node
-                for (auto child : node->outputs()[0]) {
+                const auto childs = node->outputs()[0];
+                for (const auto& child : childs) {
                     parent.first->addChild(child.first, parent.second, child.second);
                 }