diff --git a/src/shared/utils/ModuleManager/ModuleManager.hpp b/src/shared/utils/ModuleManager/ModuleManager.hpp
index 40dc1d859070c99b6d945d0d9d6a56942b093838..60e70c3c70af782ce64ed0843c9e063b4f1f8d7d 100644
--- a/src/shared/utils/ModuleManager/ModuleManager.hpp
+++ b/src/shared/utils/ModuleManager/ModuleManager.hpp
@@ -153,7 +153,7 @@ public:
         // object. It can be done because at every type, a unique id is assigned
         if (modules[id] != nullptr)
         {
-            return static_cast<T *>(modules[id]);
+            return dynamic_cast<T *>(modules[id]);
         }
 
         // Fail if the module hasn't been added before