diff --git a/src/graph/GraphView.cpp b/src/graph/GraphView.cpp
index 1b4b1a511e91e810195ccce6b7d2ebf8d84d3c70..e0fa89237e6f98552120c8f50f6ddb64fa70f5ab 100644
--- a/src/graph/GraphView.cpp
+++ b/src/graph/GraphView.cpp
@@ -575,13 +575,14 @@ bool Aidge::GraphView::replaceWith(std::set<std::shared_ptr<Node>> newNodes) {
     for (auto& nodePtr : copyNode) { nodePtr->resetConnections(true); }
 
     // copy output connections
-    for (IONb_t o = 0; o < previousOutputNode->nbOutputs(); ++o) {
-      auto outputPairs = copyOutputs[o];
-      for (const auto& onePair : outputPairs) {
-        newOutputNode->addChild(onePair.first, o, onePair.second);
+    if (newOutputNode) {
+      for (IONb_t o = 0; o < previousOutputNode->nbOutputs(); ++o) {
+        auto outputPairs = copyOutputs[o];
+        for (const auto& onePair : outputPairs) {
+          newOutputNode->addChild(onePair.first, o, onePair.second);
+        }
       }
     }
-
     // insert new Nodes in the right GraphViews
     for (auto& graphPtr : commonGraphViews) {
       graphPtr->add(newNodes, false);