diff --git a/server/worldanalysis/src/ETSI.ARF.OpenAPI.WorldAnalysis/ETSI-ARF/ControllersImpl/WebSocketController.cs b/server/worldanalysis/src/ETSI.ARF.OpenAPI.WorldAnalysis/ETSI-ARF/ControllersImpl/WebSocketController.cs
index 822931138c2f13ab348f117112b00f5c7fc3360e..47315344237a9b087410b0bca2610e1fdb2a7444 100644
--- a/server/worldanalysis/src/ETSI.ARF.OpenAPI.WorldAnalysis/ETSI-ARF/ControllersImpl/WebSocketController.cs
+++ b/server/worldanalysis/src/ETSI.ARF.OpenAPI.WorldAnalysis/ETSI-ARF/ControllersImpl/WebSocketController.cs
@@ -157,14 +157,26 @@ namespace ETSI.ARF.OpenAPI.WorldAnalysis.Controllers
                     registered = true;
                     firstTime = false;
                     currentName = msg.Split('=')[1];
+
+                    // If module exist already reuse it
+                    Module module = null;
+                    foreach (var item in WorldAnalysisConnections.Singleton.modules) if (item.name == currentName) module = item;
+                    if (module != null)
+                    {
+                        currentModule = module;
+                        currentModule.name = currentName;
+                        currentModule.websockets = this;
+                        currentModule.capabilities.Clear();
+                    }
+
                     if (currentModule == null && currentClient == null)
                     {
                         currentModule = new Module();
                         currentModule.name = currentName;
                         currentModule.websockets = this;
                         WorldAnalysisConnections.Singleton.modules.Add(currentModule);
-                        SendText($"ARF World Analysis Server: #{ WebSocketControllerInstanceCount } You are now registered as module: { currentName }");
                     }
+                    SendText($"ARF World Analysis Server: #{ WebSocketControllerInstanceCount } You are now registered as module: { currentName }");
                 }
                 else if (msg.StartsWith("RegisterClient="))
                 {
@@ -249,8 +261,13 @@ namespace ETSI.ARF.OpenAPI.WorldAnalysis.Controllers
                 {
                     // Module is sending their capabilities
                     string[] str_cap = msg.Split('=');
-                    Capability _c = JsonConvert.DeserializeObject<Capability>(str_cap[1]);
-                    if (currentModule != null) currentModule.capabilities.Add(_c);
+                    string moduleName = str_cap[1];
+                    Capability _c = JsonConvert.DeserializeObject<Capability>(str_cap[2]);
+
+                    // Has the module already send their capabilities?
+                    Module module = null;
+                    foreach (var item in WorldAnalysisConnections.Singleton.modules) if (item.name == moduleName) module = item;
+                    if (module != null) module.capabilities.Add(_c);
                 }
                 else if (msg.StartsWith("NewPose="))
                 {