diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index 0c834fccb920a9527a6f6a6aaaf59e81fddf8a56..8e9ff8612e6098e3f6dc5ed889cbac9c0efea9f7 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -101,6 +101,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
             processKnownProfiling();
 
             // Reset this
+            last_ptr_       = incoming_ptr_; // Before calling resetDerived() since it will assume KF in last
             resetDerived();
             // Update pointers
             origin_ptr_     = incoming_ptr_;
@@ -136,6 +137,7 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
             getProblem()->keyFrameCallback(keyframe, shared_from_this());
 
             // Reset this
+            last_ptr_       = incoming_ptr_; // Before calling resetDerived() since it will assume KF in last
             resetDerived();
             // Update pointers
             origin_ptr_     = incoming_ptr_;