diff --git a/src/scheduler/Scheduler.cpp b/src/scheduler/Scheduler.cpp
index 08a7c274b40f181f147ed1b97c79a465153ab1d6..7d2db24eb3637fc7f64d8c9ba16ce388b7e9204e 100644
--- a/src/scheduler/Scheduler.cpp
+++ b/src/scheduler/Scheduler.cpp
@@ -243,10 +243,10 @@ void Aidge::SequentialScheduler::generateScheduling(bool verbose) {
             // its childs become consumers.
             bool isProducer = false;
             for (IOIndex_t outId = 0; outId < consumer->nbOutputs(); ++outId) {
-                for (const auto child : consumer->getChildren(outId)) {
+                for (const auto& child : consumer->getChildren(outId)) {
                     if (child) {
                         IOIndex_t inputIdx = 0;
-                        for (const auto childParent : child->getParents()) {
+                        for (const auto& childParent : child->getParents()) {
                             if (childParent == consumer) {
                                 if (consumer->getOperator()->getNbProducedData(outId) > child->getOperator()->getNbConsumedData(inputIdx)) {
                                     isProducer = true;