diff --git a/src/View/ListedSubWindow.py b/src/View/ListedSubWindow.py
index 3e46bbad09b6f335c687a8d98bb6c0eb6bb5041d..719de3d689c7b2e40ca87bddf2d76c778625c0e9 100644
--- a/src/View/ListedSubWindow.py
+++ b/src/View/ListedSubWindow.py
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
 
+from functools import reduce
+
 class ListedSubWindow(object):
     def __init__(self):
         super(ListedSubWindow, self).__init__()
@@ -26,3 +28,10 @@ class ListedSubWindow(object):
         )
         self.sub_win_cnt = len(self.sub_win_list)
         print(f"- {name} ({self.sub_win_cnt})")
+
+    def sub_win_exists(self, name):
+        return reduce(
+            lambda acc, n: (acc or (n[0] == name)),
+            self.sub_win_list,
+            False
+        )
diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index c99c4e3a4d97b4085c9211f6368ded6165ca89d1..6f9a82be7d179637018342c61edd490e616a673b 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -289,11 +289,17 @@ class ApplicationWindow(QMainWindow, ListedSubWindow):
         Returns:
             Nothing
         """
-        if not self.model is None:
+        if (self.model is not None and
+            not self.sub_win_exists("River network")):
             self.network = NetworkWindow(model=self.model, parent=self)
             self.network.show()
 
     def open_geometry(self):
+        """Open geometry window
+
+        Returns:
+            Nothing
+        """
         if not self.model is None:
             geometry = GeometryWindow(parent=self)
             geometry.show()