diff --git a/src/View/Geometry/Window.py b/src/View/Geometry/Window.py
index 851b73bb69b7dfa6fecc62e5bfa6967984e3a79f..e33b6d5404a567346f0dcb2cf6734dd97f2501b2 100644
--- a/src/View/Geometry/Window.py
+++ b/src/View/Geometry/Window.py
@@ -184,13 +184,20 @@ class GeometryWindow(ASubMainWindow, ListedSubWindow):
         for row in rows:
             profile = self._reach.profile(row)
 
-            win = ProfileWindow(
-                profile = profile,
-                parent = self,
+            win = self.sub_win_filter_first(
+                "Profile",
+                contain = [self._reach.name, str(profile.kp)]
             )
 
-            self._profile_window.append(win)
-            win.show()
+            if win is None:
+                win = ProfileWindow(
+                    profile = profile,
+                    parent = self,
+                )
+                self._profile_window.append(win)
+                win.show()
+            else:
+                win.activateWindow()
 
         self.tableView.model().blockSignals(False)