diff --git a/src/Model/Geometry/Reach.py b/src/Model/Geometry/Reach.py
index c10b56fc50817e0b12264bc185e8288de0a8d275..3ef25793e744592f4b8c4b00d9a0903e9ed6f254 100644
--- a/src/Model/Geometry/Reach.py
+++ b/src/Model/Geometry/Reach.py
@@ -368,6 +368,9 @@ class Reach(SQLSubModel):
 
     def inter_profiles_rk(self):
         profiles = sorted(self.profiles, key=lambda p: p.rk)
+        if len(profiles) == 0:
+            return []
+
         first = profiles[0]
         last = profiles[-1]
 
@@ -750,6 +753,9 @@ class Reach(SQLSubModel):
                 cnt += 1
 
     def get_incline(self):
+        if len(self.profiles) == 0:
+            return 0.0
+
         first = self.profile(0)
         last = self.profile(len(self) - 1)
 
@@ -767,6 +773,9 @@ class Reach(SQLSubModel):
 
     def get_incline_mean(self):
         profiles = self.profiles
+        if len(profiles) == 0:
+            return 0.0
+
         previous = profiles[0]
 
         incline_acc = 0
@@ -790,6 +799,9 @@ class Reach(SQLSubModel):
 
     def get_incline_median(self):
         profiles = self.profiles
+        if len(profiles) == 0:
+            return 0.0
+
         previous = profiles[0]
 
         incline_acc = []
@@ -814,6 +826,9 @@ class Reach(SQLSubModel):
 
     def get_incline_median_mean(self):
         profiles = self.profiles
+        if len(profiles) == 0:
+            return 0.0
+
         previous = profiles[0]
 
         incline_acc = []
diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py
index 336a9671b4e7edfafcff4ca3cf70b7f541381b8a..a414dcaa70df7004e9a19fc9f0567f1916233873 100644
--- a/src/View/BoundaryCondition/Edit/Window.py
+++ b/src/View/BoundaryCondition/Edit/Window.py
@@ -347,6 +347,13 @@ class EditBoundaryConditionWindow(PamhyrWindow):
             if node is None:
                 return
             reach = self._data.reach(self._study.river)[0]
+            if len(reach.profiles) == 0:
+                self.message_box(
+                    text=self._trad["title_need_geometry"],
+                    informative_text=self._trad["msg_need_geometry"]
+                )
+                return
+
             profile = reach.profiles[-1]
             dlg = GenerateDialog(self.slope_value,
                                  reach,
@@ -379,6 +386,13 @@ class EditBoundaryConditionWindow(PamhyrWindow):
             if node is None:
                 return
             reach = self._data.reach(self._study.river)[0]
+            if len(reach.profiles) == 0:
+                self.message_box(
+                    text=self._trad["title_need_geometry"],
+                    informative_text=self._trad["msg_need_geometry"]
+                )
+                return
+
             profile = reach.profiles[-1]
             z_min = profile.z_min()
             z_max = profile.z_max()
diff --git a/src/View/BoundaryCondition/Edit/translate.py b/src/View/BoundaryCondition/Edit/translate.py
index 006c49df0fc6d97fdf66722fcb825cc48a4af8cf..3912b81c6e18c4440935b3dbfa98824e3c845850 100644
--- a/src/View/BoundaryCondition/Edit/translate.py
+++ b/src/View/BoundaryCondition/Edit/translate.py
@@ -44,3 +44,12 @@ class BCETranslate(BCTranslate):
             "z": self._dict["unit_elevation"],
             "solid": _translate("BoundaryCondition", "Solid (kg/s)"),
         }
+
+        self._dict["title_need_geometry"] = _translate(
+            "Geometry", "No geometry"
+        )
+        self._dict["msg_need_geometry"] = _translate(
+            "Geometry",
+            "There is not geometry found for this reach, "
+            "a geometry is needed to this features"
+        )
diff --git a/src/View/Tools/ASubWindow.py b/src/View/Tools/ASubWindow.py
index 01db62f43e56f477bf40139b847971ed928a7240..25928e4db07b4119ada6bc49a78af913fdee8a73 100644
--- a/src/View/Tools/ASubWindow.py
+++ b/src/View/Tools/ASubWindow.py
@@ -142,7 +142,7 @@ class WindowToolKit(object):
         Returns:
             Nothing
         """
-        msg = QMessageBox()
+        msg = QMessageBox(parent=self)
 
         msg.setIcon(QMessageBox.Warning)
         msg.setText(text)