diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index 4a47e5d9ea8ee89715e9569032841279234c26a5..d11509a112e8aa51bde5f50583233987b7b0c4d2 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -132,10 +132,8 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
 
             // Capture last_ is added to the new keyframe
             FrameBasePtr last_old_frame = last_ptr_->getFrame();
-            last_old_frame->unlinkCapture(last_ptr_);
+            last_ptr_->link(pack->key_frame); // automatically calling last_ptr_->unlink();
             last_old_frame->remove();
-            // pack->key_frame->addCapture(last_ptr_);
-            last_ptr_->link(pack->key_frame);
 
             // Create new frame
             FrameBasePtr frm = getProblem()->emplaceFrame(NON_ESTIMATED, incoming_ptr_->getTimeStamp());