diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index d11509a112e8aa51bde5f50583233987b7b0c4d2..7acb2066ac89a2c1655f2de957c35d39b279e961 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -157,17 +157,14 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
         {
             processKnown();
 
-            // eventually add more features
-            if (last_ptr_->getFeatureList().size() < params_tracker_->min_features_for_keyframe)
+            if (voteForKeyFrame() && permittedKeyFrame())
             {
-                //WOLF_TRACE("Adding more features...");
+                // process
                 processNew(params_tracker_->max_new_features);
-            }
 
-            if (voteForKeyFrame() && permittedKeyFrame())
-            {
-                // We create a KF
+                //TODO abort KF if last_ptr_->getFeatureList().size() < params_tracker_->min_features_for_keyframe
 
+                // We create a KF
                 // set KF on last
                 last_ptr_->getFrame()->setState(getProblem()->getState(last_ptr_->getTimeStamp()));
                 last_ptr_->getFrame()->setKey();
@@ -176,9 +173,6 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
                 FrameBasePtr frm = getProblem()->emplaceFrame(NON_ESTIMATED, incoming_ptr_->getTimeStamp());
                 incoming_ptr_->link(frm);
 
-                // process
-                processNew(params_tracker_->max_new_features);
-
                 // Set state to the keyframe
                 last_ptr_->getFrame()->setState(getProblem()->getState(last_ptr_->getTimeStamp()));