diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index d499c26136f499c5c51784c09ff7e8b2ca0d8ff8..bba0f441766ec0d24a40566e40a64cd79dfef2f9 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -115,7 +115,8 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
             // Process info
             // TrackerFeature:  We only process new features in Last, here last = nullptr, so we do not have anything to do.
             // TrackerLandmark: If we have been given a map, all landmarks in the map are known. Process them.
-            processKnown();
+            if (not getProblem()->getMap()->getLandmarkList().empty())
+                processKnown();
 
             // Issue KF callback with new KF
             getProblem()->keyFrameCallback(keyframe, shared_from_this());
@@ -158,7 +159,9 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
 
             // Process info
             // TrackerLandmark: If we have been given a map, all landmarks in the map are known. Process them.
-            processKnown();
+            if (not getProblem()->getMap()->getLandmarkList().empty())
+                processKnown();
+            
             // Both Trackers:  We have a last_ Capture with not enough features, so populate it.
             processNew(params_tracker_->max_new_features);