diff --git a/src/calng/manual_geometry_base.py b/src/calng/manual_geometry_base.py
index c80b6e081524443f28529081de1a4c0dc22f1f36..ee3748fc3eb95f5d374ba10693fe9eee3679b63f 100644
--- a/src/calng/manual_geometry_base.py
+++ b/src/calng/manual_geometry_base.py
@@ -112,7 +112,11 @@ class ManualGeometryBase(PythonDevice):
         self.KARABO_SLOT(self.requestScene)
         self.update_geom()
         plt.switch_backend("agg")
+        self.registerInitialFunction(self._initialization)
+
+    def _initialization(self):
         self.updateState(State.ON)
+        self.pleaseSendYourGeometry()
 
     def requestScene(self, params):
         payload = Hash()
@@ -132,6 +136,7 @@ class ManualGeometryBase(PythonDevice):
         self.reply(response)
 
     def pleaseSendYourGeometry(self):
+        self.update_geom()
         self.writeChannel("geometryOutput", Hash("pickledGeometry", self.pickled))
         axis = self.geom.inspect()
         axis.figure.tight_layout(pad=0)
@@ -152,11 +157,6 @@ class ManualGeometryBase(PythonDevice):
         self._prereconfigure_update_hash = config
 
     def postReconfigure(self):
-        if any(
-            path.startswith("quadrantCorners")
-            for path in self._prereconfigure_update_hash.getPaths()
-        ):
-            self.update_geom()
         del self._prereconfigure_update_hash
 
 
@@ -184,6 +184,15 @@ class ManualQuadrantsGeometryBase(ManualGeometryBase):
                 .commit(),
             )
 
+    def postReconfigure(self):
+        if any(
+            path.startswith("quadrantCorners")
+            for path in self._prereconfigure_update_hash.getPaths()
+        ):
+            self.update_geom()
+
+        super().postReconfigure()
+
     def update_geom(self):
         self.quadrant_corners = tuple(
             (self.get(f"quadrantCorners.Q{q}.x"), self.get(f"quadrantCorners.Q{q}.y"))
@@ -209,6 +218,12 @@ class ManualModulesGeometryBase(ManualGeometryBase):
             .commit(),
         )
 
+    def postReconfigure(self):
+        if self._prereconfigure_update_hash.has("modules"):
+            self.update_geom()
+
+        super().postReconfigure()
+
     def update_geom(self):
         modules = self.get("modules")
         module_pos = [(module.get("posX"), module.get("posY")) for module in modules]