diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index ad2e1c3c30dc772649ae36bb26060c60b3818744..0808ba8f8d73a6c8f651e7e4438a7c6fdefc24f0 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -531,11 +531,19 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
 
     def open_initial_conditions(self):
         if self.model.river.has_current_reach():
-            initial = InitialConditionsWindow(
-                study = self.model,
-                parent = self
+            initial = self.sub_win_filter_first(
+                "Initial condition",
+                contain = [self.model.river.current_reach().name]
             )
-            initial.show()
+
+            if initial is None:
+                initial = InitialConditionsWindow(
+                    study = self.model,
+                    parent = self
+                )
+                initial.show()
+            else:
+                initial.activateWindow()
         else:
             self.msg_select_reach()