diff --git a/src/scheduler/Scheduler.cpp b/src/scheduler/Scheduler.cpp
index ac73b8264502b970cead955262e482eb97592b84..0e8cba07ea25ed38e3a93b3416529876ea3bceea 100644
--- a/src/scheduler/Scheduler.cpp
+++ b/src/scheduler/Scheduler.cpp
@@ -738,6 +738,13 @@ Aidge::MemoryManager Aidge::Scheduler::generateMemoryAutoConcat(bool incProducer
                             concatOffset += parentSize;
                         }
                     }
+
+                    // Size in reallocate() is counted from the offset, not from 0,
+                    // meaning the offset must be substracted to obtain the correct
+                    // total size without excess.
+                    if (concatOffset > 0) {
+                        concatSize -= concatOffset;
+                    }
                 }
 
                 // MemoryPlane to (re)use