diff --git a/src/processor_tracker.cpp b/src/processor_tracker.cpp
index 1fb61cdef4193c1c4cb6019a649c8f1a8557d786..9361d298fd53e9b4d307284f5ebdbca0f8f27e4e 100644
--- a/src/processor_tracker.cpp
+++ b/src/processor_tracker.cpp
@@ -61,6 +61,7 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
             pack->key_frame->addCapture(incoming_ptr_);
 
             // Process info
+            processKnown();
             // We only process new features in Last, here last = nullptr, so we do not have anything to do.
 
             // Update pointers
@@ -77,6 +78,7 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
             kfrm->addCapture(incoming_ptr_);
 
             // Process info
+            processKnown();
             // We only process new features in Last, here last = nullptr, so we do not have anything to do.
 
             // Issue KF callback with new KF
@@ -95,7 +97,7 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
         	// No-break case only for debug. Next case will be executed too.
             PackKeyFramePtr pack = kf_pack_buffer_.selectPack( incoming_ptr_, params_tracker_->time_tolerance);
             WOLF_DEBUG( "PT ", getName(), ": KF" , pack->key_frame->id() , " callback unpacked with ts= " , pack->key_frame->getTimeStamp().get() );
-        }
+        } // @suppress("No break at end of case")
         case SECOND_TIME_WITHOUT_PACK :
         {
             FrameBasePtr frm = getProblem()->emplaceFrame(NON_KEY_FRAME, incoming_ptr_->getTimeStamp());
@@ -104,6 +106,7 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
             // We have a last_ Capture with no features, so we do not process known features, and we do not vote for KF.
 
             // Process info
+            processKnown();
             processNew(params_tracker_->max_new_features);
 
             // Establish constraints
diff --git a/src/processor_tracker_feature.cpp b/src/processor_tracker_feature.cpp
index 05c5e2e9ae72539afc64e505e3d9fc541890deb7..049e0bf5cd760c15ba3e3f1f8988a5c716bf3c3a 100644
--- a/src/processor_tracker_feature.cpp
+++ b/src/processor_tracker_feature.cpp
@@ -61,6 +61,11 @@ unsigned int ProcessorTrackerFeature::processKnown()
     assert(matches_last_from_incoming_.size() == 0
             && "In ProcessorTrackerFeature::processKnown(): match list from last to incoming must be empty before processKnown()");
 
+    if (!last_ptr_ || last_ptr_->getFeatureList().empty())
+    {
+        return 0;
+    }
+
     // Track features from last_ptr_ to incoming_ptr_
     trackFeatures(last_ptr_->getFeatureList(), known_features_incoming_, matches_last_from_incoming_);
     for (auto match : matches_last_from_incoming_)