diff --git a/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.cpp b/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.cpp
index a80a189ff585c7610bebe0978468aec82ebe48b9..a0c606a990fd4635a5fa2cded1c0e5be8f7566a8 100644
--- a/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.cpp
+++ b/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.cpp
@@ -40,6 +40,14 @@ namespace armarx::armem::mns
             }
         }
     }
+    
+    dto::RegisterServerResult MemoryNameSystem::registerServer(const dto::RegisterServerInput& input) 
+    {
+        const auto result = Registry::registerServer(input);
+        waitForServer_processOnce();
+
+        return result;
+    }
 
 
     armarx::RemoteGui::Client::GridLayout MemoryNameSystem::RemoteGui_buildInfoGrid()
@@ -92,4 +100,3 @@ namespace armarx::armem::mns
     }
 
 }
-
diff --git a/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.h b/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.h
index 51e4719f127ee576073e0c9b45cb0635241a185d..e0cf5b88753cb4a96caad2c004a853dcd4d11a34 100644
--- a/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.h
+++ b/source/RobotAPI/libraries/armem/mns/MemoryNameSystem.h
@@ -31,6 +31,8 @@ namespace armarx::armem::mns
 
         void waitForServer_processOnce();
 
+        dto::RegisterServerResult registerServer(const dto::RegisterServerInput& input) override;
+
 
         /// Builds a RemoteGui grid containing information about registered memories.
         armarx::RemoteGui::Client::GridLayout RemoteGui_buildInfoGrid();
diff --git a/source/RobotAPI/libraries/armem/mns/Registry.h b/source/RobotAPI/libraries/armem/mns/Registry.h
index bf9348d157ee990f6032c4cf115b9fd56c70f716..c1965bdac24fcdf943ad2b7bc945698358dd3f0c 100644
--- a/source/RobotAPI/libraries/armem/mns/Registry.h
+++ b/source/RobotAPI/libraries/armem/mns/Registry.h
@@ -35,7 +35,7 @@ namespace armarx::armem::mns
          * Causes threads waiting in `waitForMemory()` to resume if the respective
          * memory server was added.
          */
-        dto::RegisterServerResult registerServer(const dto::RegisterServerInput& input);
+        virtual dto::RegisterServerResult registerServer(const dto::RegisterServerInput& input);
         /**
          * @brief Remove a server entry.
          */