diff --git a/src/Model/HydraulicStructures/HydraulicStructures.py b/src/Model/HydraulicStructures/HydraulicStructures.py
index 6d0fa55c85522ac90f7609d399db64b0f3deb431..96603e26f9704ef7d1a027fc0238693f0f82a054 100644
--- a/src/Model/HydraulicStructures/HydraulicStructures.py
+++ b/src/Model/HydraulicStructures/HydraulicStructures.py
@@ -113,23 +113,14 @@ class HydraulicStructure(SQLSubModel):
             hs.input_kp = input_kp
             hs.output_kp = output_kp
 
-            hs.input_reach = None
-            if input_reach_id != -1:
-                hs.input_reach = next(
-                    filter(
-                        lambda n: n.id == input_reach_id,
-                        data["reachs"]
-                    )
-                )
-
-            hs.output_reach = None
-            if output_reach_id != -1:
-                hs.output_reach = next(
-                    filter(
-                        lambda n: n.id == output_reach_id,
-                        data["reachs"]
-                    )
-                )
+            hs.input_reach, hs.output_reach = reduce(
+                lambda acc, n: (
+                    n if n.id == input_reach_id else acc[0],
+                    n if n.id == output_reach_id else acc[1]
+                ),
+                data["reachs"],
+                [None, None]
+            )
 
             data['hs_id'] = hs_id
             hs._data = BasicHS._db_load(execute, data)
@@ -143,11 +134,11 @@ class HydraulicStructure(SQLSubModel):
 
         input_reach_id = -1
         if self._input_reach is not None:
-            reach_id = self._input_reach.id
+            input_reach_id = self._input_reach.id
 
         output_reach_id = -1
         if self._output_reach is not None:
-            reach_id = self._output_reach.id
+            output_reach_id = self._output_reach.id
 
         sql = (
             "INSERT INTO " +
@@ -232,7 +223,7 @@ class HydraulicStructure(SQLSubModel):
         return self._data.copy()
 
     def add(self, index: int):
-        value = BasicHS()
+        value = BasicHS(status=self._status)
         self._data.insert(index, value)
         self._status.modified()
         return value
diff --git a/src/Model/HydraulicStructures/HydraulicStructuresList.py b/src/Model/HydraulicStructures/HydraulicStructuresList.py
index 22c1ed014e7925cb7337458f0097a082a4fdd484..0e1039fda7b4d96d28bd5b2388cdd97ee1c43f7c 100644
--- a/src/Model/HydraulicStructures/HydraulicStructuresList.py
+++ b/src/Model/HydraulicStructures/HydraulicStructuresList.py
@@ -20,8 +20,6 @@ from copy import copy
 from tools import trace, timer
 
 from Model.Tools.PamhyrList import PamhyrModelList
-from Model.Except import NotImplementedMethodeError
-
 from Model.HydraulicStructures.HydraulicStructures import HydraulicStructure
 
 class HydraulicStructureList(PamhyrModelList):
@@ -54,7 +52,7 @@ class HydraulicStructureList(PamhyrModelList):
         return True
 
     def new(self, lst, index):
-        n = NotDefined(status=self._status)
+        n = HydraulicStructure(status=self._status)
         self._lst.insert(index, n)
         self._status.modified()
         return n