diff --git a/src/operator/Memorize.cpp b/src/operator/Memorize.cpp
index 4878ff291a549ab1c2cc787e10b7032ea2a42217..05815f9291cb2673545e745bd558095cc1b9be41 100644
--- a/src/operator/Memorize.cpp
+++ b/src/operator/Memorize.cpp
@@ -94,7 +94,7 @@ Aidge::Memorize_Op::Memorize_Op(const Aidge::Memorize_Op& op)
     if (!op.backend().empty()) {
         SET_IMPL_MACRO(Memorize_Op, *this, op.backend());
     } else {
-        mImpl = nullptr;
+        mImpl = std::make_shared<Memorize_OpImpl>(*this);
     }
     mOutputs[1] = mOutputs[0];
 }