diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
index 4a96e410dc50a1c7cbe8520bb1d35479336a3ad0..2485948014a3d8dec7339bb1caa941cae38fadbd 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
@@ -10,20 +10,47 @@
 namespace armarx::armem::ltm
 {
 
+    bool Memory::checkConnection() const
+    {
+        // Check connection:
+        if (!MongoDBConnectionManager::ConnectionIsValid(dbsettings))
+        {
+            ARMARX_WARNING << deactivateSpam("ConnectionIsNotValid") << "The connection to mongocxx for memory '" << name() << "' is not valid. Settings are: " << dbsettings.toString();
+            return false;
+        }
+        ARMARX_INFO << "Checking connection";
+        return true;
+    }
+
     wm::Memory Memory::convert() const
     {
+        if (!checkConnection())
+        {
+            wm::Memory m(id());
+            return m;
+        }
+
         ARMARX_INFO << "Converting with connection to: " << dbsettings.toString();
 
+        TIMING_START(LTM_Convert);
+
         wm::Memory m(id());
         for (const auto& [_, s] : _container)
         {
             m.addCoreSegment(s.convert());
         }
+
+        TIMING_END(LTM_Convert);
         return m;
     }
 
     void Memory::reload()
     {
+        if (!checkConnection())
+        {
+            return;
+        }
+
         ARMARX_INFO << "(Re)Establishing connection to: " << dbsettings.toString();
         _container.clear();
 
@@ -60,6 +87,11 @@ namespace armarx::armem::ltm
 
     void Memory::append(const wm::Memory& m)
     {
+        if (!checkConnection())
+        {
+            return;
+        }
+
         ARMARX_INFO << "Merge memory with name '" << m.name() << "' into the LTM with name '" << name() << "'";
 
         TIMING_START(LTM_Append);
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.h b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.h
index 0c14d481093d60af2eab0003bb2bb21ff8c4016b..86c00cc618e23620540428ba3b024743ecc272ee 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.h
@@ -65,6 +65,8 @@ namespace armarx::armem::ltm
             other.dbsettings = dbsettings;
         }
 
+    private:
+        bool checkConnection() const;
 
     public:
         MongoDBConnectionManager::MongoDBSettings dbsettings;
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.cpp
index d35c7640cff283349e592dfc3e6d7e616e27516c..6ad44836900e04765790a9a3c2a19881e1288656 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.cpp
@@ -5,13 +5,19 @@ namespace armarx::armem::ltm
     bool MongoDBConnectionManager::initialized = false;
     std::map<std::string, mongocxx::client> MongoDBConnectionManager::Connections = {};
 
-    mongocxx::client& MongoDBConnectionManager::EstablishConnection(const MongoDBSettings& settings)
+
+    void MongoDBConnectionManager::initialize_if()
     {
         if (!initialized)
         {
             initialized = true;
             mongocxx::instance instance{}; // This should be done only once.
         }
+    }
+
+    mongocxx::client& MongoDBConnectionManager::EstablishConnection(const MongoDBSettings& settings)
+    {
+        initialize_if();
 
         const auto uri_str = settings.uri();
         const auto& it = Connections.find(uri_str);
@@ -27,4 +33,44 @@ namespace armarx::armem::ltm
             return it->second;
         }
     }
+
+    bool MongoDBConnectionManager::ConnectionIsValid(const MongoDBSettings& settings, bool force)
+    {
+        initialize_if();
+
+        try
+        {
+            if (!force)
+            {
+                const auto uri_str = settings.uri();
+                const auto& it = Connections.find(uri_str);
+                if (it != Connections.end())
+                {
+                    auto admin = it->second["admin"];
+                    auto result = admin.run_command(bsoncxx::builder::basic::make_document(bsoncxx::builder::basic::kvp("isMaster", 1)));
+                    return true;
+                }
+            }
+
+            const auto uri_str = settings.uri();
+            mongocxx::uri uri(uri_str);
+            auto client = mongocxx::client(uri);
+            auto admin = client["admin"];
+            auto result = admin.run_command(bsoncxx::builder::basic::make_document(bsoncxx::builder::basic::kvp("isMaster", 1)));
+            return true;
+        }
+        catch (const std::exception& xcp)
+        {
+            return false;
+        }
+    }
+
+    bool MongoDBConnectionManager::ConnectionExists(const MongoDBSettings& settings)
+    {
+        initialize_if();
+
+        const auto uri_str = settings.uri();
+        const auto& it = Connections.find(uri_str);
+        return it != Connections.end();
+    }
 }
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.h b/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.h
index 0c04151ccd175c410cabc132e45535d624646c2e..0cd3cb5ba8f6c575d6d3dd9357f16884f508914c 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.h
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/mongodb/MongoDBConnectionManager.h
@@ -4,6 +4,7 @@
 #include <vector>
 #include <map>
 #include <memory>
+#include <iostream>
 
 #include <bsoncxx/json.hpp>
 #include <mongocxx/client.hpp>
@@ -35,7 +36,7 @@ namespace armarx::armem::ltm
         struct MongoDBSettings
         {
             std::string host = "localhost";
-            unsigned int port = 27017;
+            unsigned int port = 25270;
             std::string user = "";
             std::string password = "";
             std::string database = "Test";
@@ -59,6 +60,11 @@ namespace armarx::armem::ltm
         };
 
         static mongocxx::client& EstablishConnection(const MongoDBSettings& settings);
+        static bool ConnectionIsValid(const MongoDBSettings& settings, bool force = false);
+        static bool ConnectionExists(const MongoDBSettings& settings);
+
+    private:
+        static void initialize_if();
 
 
     private: