diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index 4d2462f72d4e9bbf2fc6cb2c453389ea02028309..74ea27dc4e2fe25d867728288384983b11734d74 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -419,15 +419,7 @@ FrameBasePtr Problem::emplaceFrame(FrameType _frame_key_type, //
 
 TimeStamp Problem::getTimeStamp ( ) const
 {
-    if ( processor_is_motion_list_.empty() ) // Use last estimated frame's state
-    {
-        auto last_kf_or_aux = trajectory_ptr_->getLastKeyOrAuxFrame();
-
-        assert(last_kf_or_aux != nullptr && "Problem has no Keyframe so no timestamp can be obtained!");
-
-        return last_kf_or_aux->getTimeStamp();
-    }
-    else
+    if (not processor_is_motion_list_.empty() ) // Use most recent Motion processor data
     {
         TimeStamp  ts(0);
         for (const auto& prc : processor_is_motion_list_)
@@ -435,6 +427,19 @@ TimeStamp Problem::getTimeStamp ( ) const
                 ts = prc->getTimeStamp();
         return ts;
     }
+    else
+    {
+        const auto& last_kf_or_aux = trajectory_ptr_->getLastKeyOrAuxFrame();
+
+        if (last_kf_or_aux)
+            return last_kf_or_aux->getTimeStamp(); // Use last estimated frame's state
+
+        else
+        {
+            WOLF_WARN( "Problem has no Keyframe so no timestamp can be obtained!");
+            return TimeStamp::Invalid();
+        }
+    }
 }