diff --git a/source/RobotAPI/libraries/armem/server/ltm/Memory.h b/source/RobotAPI/libraries/armem/server/ltm/Memory.h
index b3cd24b8b32a36895b18288fd45797277c09da19..05d04551d683cb3fb3fb773ca97ebb6cee8c3b6e 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/Memory.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/Memory.h
@@ -49,6 +49,11 @@ namespace armarx::armem::server::ltm
 
         void createPropertyDefinitions(PropertyDefinitionsPtr& defs, const std::string& prefix) override;
 
+        /**
+         * @brief getAndSaveStatistics generates and saves statistics for a LTM recording
+         */
+        void getAndSaveStatistics();
+
     protected:
         void _loadAllReferences(armem::wm::Memory&) final;
         void _resolve(armem::wm::Memory&) final;
@@ -56,11 +61,6 @@ namespace armarx::armem::server::ltm
         void _directlyStore(const armem::wm::Memory&) final;
 
     private:
-        /**
-         * @brief getAndSaveStatistics generates and saves statistics for a LTM recording
-         */
-        void getAndSaveStatistics();
-
         std::time_t current_date;
     };
 } // namespace armarx::armem::server::ltm
diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h b/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
index 99839aab44c5db5988f6fc0e25939fbbe5cdd555..99df8e2e6177be8f39f019342352762724fa7bf1 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
@@ -303,8 +303,8 @@ namespace armarx::armem::server::ltm::detail
         {
             bool enabled_on_startup = false;
             std::string configuration_on_startup =
-                "{ \"SnapshotFrequencyFilter\": {\"WaitingTimeInMsForFilter\" : 500}, "
-                "\"PngConverter\": {}, \"ExrConverter\": {}}";
+                "{ \"SnapshotFrequencyFilter\": {\"WaitingTimeInMsForFilter\" : 50}, "
+                "\"PngConverter\": {}, \"ExrConverter\": {}}"; //record with 20 fps as standard
             std::string export_name = "MemoryExport";
             std::string export_path = "/tmp/ltm";
         } p;
diff --git a/source/RobotAPI/libraries/armem/server/plugins/Plugin.cpp b/source/RobotAPI/libraries/armem/server/plugins/Plugin.cpp
index 14b4f7dc1e1e39cb949995c3e8c6b305282da3d9..da889f795e6f8773dfbecbe5c9497b63d60dd215 100644
--- a/source/RobotAPI/libraries/armem/server/plugins/Plugin.cpp
+++ b/source/RobotAPI/libraries/armem/server/plugins/Plugin.cpp
@@ -133,6 +133,16 @@ namespace armarx::armem::server::plugins
 
         statistics_saved = true;
         */
+        try{
+            if(longtermMemory.isRecording()){
+                ARMARX_INFO << "Recording still in progress, stopping component anyways. "
+                               "Saving statistics...";
+                longtermMemory.getAndSaveStatistics();
+            }
+        } catch(...){
+            ARMARX_WARNING << "Statistics could not be saved for recording that was interrupted by "
+                              "disconnecting the component";
+        }
 
         if (clientPlugin->isMemoryNameSystemEnabled() and clientPlugin->getMemoryNameSystemClient())
         {
diff --git a/source/RobotAPI/libraries/armem/server/test/ForgettingExperiments.cpp b/source/RobotAPI/libraries/armem/server/test/ForgettingExperiments.cpp
index 0025f3e20582dea2ab6891cf11ec9b8b5584a989..9e84d09f91b32491f72f709521c1bbc0c283acfc 100644
--- a/source/RobotAPI/libraries/armem/server/test/ForgettingExperiments.cpp
+++ b/source/RobotAPI/libraries/armem/server/test/ForgettingExperiments.cpp
@@ -84,6 +84,7 @@ void save_statistics(
 
     //get current date:
     auto now = std::chrono::high_resolution_clock::now();
+    auto now_ax_datetime = DateTime::Now();
     auto now_time = std::chrono::high_resolution_clock::to_time_t(now);
     auto time = localtime(&now_time);
 
@@ -97,6 +98,12 @@ void save_statistics(
 
     bool ended_without_recording = false;
 
+    if(firstStoppedRecording.toMilliSecondsSinceEpoch() < firstStartedRecording.toMilliSecondsSinceEpoch()){
+        //this can happen if the recording is not propperly stopped but interrupted by stopping
+        //the component
+        firstStoppedRecording = now_ax_datetime;
+    }
+
     for(const auto& filter: stats){
        filter_statistics(filter.second, memoryName,firstStartedRecording, firstStoppedRecording, &jsonData);
     }