diff --git a/src/Model/BoundaryCondition/BoundaryConditionList.py b/src/Model/BoundaryCondition/BoundaryConditionList.py
index 051a3ea83b067cb7dc021cc013163537867177b3..b2c7b8bc9a8e784cc26c7fcb82649fb3ac82d352 100644
--- a/src/Model/BoundaryCondition/BoundaryConditionList.py
+++ b/src/Model/BoundaryCondition/BoundaryConditionList.py
@@ -89,3 +89,11 @@ class BoundaryConditionList(PamhyrModelListWithTab):
 
     def copy(self):
         return copy(self)
+
+    def get_assoc_to_node(self, tab, node):
+        return next(
+            filter(
+                lambda i: i.node is node,
+                self._tabs[tab]
+            )
+        )
diff --git a/src/View/BoundaryCondition/UndoCommand.py b/src/View/BoundaryCondition/UndoCommand.py
index 64bfebbe5c7133be86144ab2e7a00a4312d95416..fd2923d39d973e1e4b7f30d280a4785e8fbdbc7b 100644
--- a/src/View/BoundaryCondition/UndoCommand.py
+++ b/src/View/BoundaryCondition/UndoCommand.py
@@ -53,12 +53,19 @@ class SetNodeCommand(QUndoCommand):
         self._index = index
         self._old = self._bcs.get(self._tab, self._index).node
         self._new = node
+        self._prev_assoc_to_node = self._bcs.get_assoc_to_node(tab, node)
+
+    def _previous_assoc_node(self, node):
+        if self._prev_assoc_to_node is not None:
+            self._prev_assoc_to_node.node = node
 
     def undo(self):
         self._bcs.get(self._tab, self._index).node = self._old
+        self._previous_assoc_node(self._new)
 
     def redo(self):
         self._bcs.get(self._tab, self._index).node = self._new
+        self._previous_assoc_node(None)
 
 
 class SetTypeCommand(QUndoCommand):