diff --git a/src/processor/processor_tracker_gnss.cpp b/src/processor/processor_tracker_gnss.cpp
index 1e0a9e3174ccd50efe7a4e6ca96e3e927c3b3f81..d7aa0e8a41e06c936bac7889d224549212a11e81 100644
--- a/src/processor/processor_tracker_gnss.cpp
+++ b/src/processor/processor_tracker_gnss.cpp
@@ -471,7 +471,6 @@ void ProcessorTrackerGnss::establishFactors()
         // Displacement factor from batch TDCP (FactorGnssDisplacement3d)
         if (tdcp_params_.batch)
         {
-            WOLF_DEBUG("TDCP BATCH frame ", last_frame_ptr_->id());
             FactorBasePtr last_fac_ptr = nullptr;
 
             auto frame_map = getProblem()->getTrajectory()->getFrameMap();
@@ -480,8 +479,8 @@ void ProcessorTrackerGnss::establishFactors()
                 auto ref_KF = frame_rev_iter->second;
                 WOLF_DEBUG("TDCP BATCH ref frame ", ref_KF->id());
 
-                // discard non-key frames, last-last pair and frames without CaptureGnss
-                if (ref_KF == last_frame_ptr_ or ref_KF->getCaptureOf(getSensor(), "CaptureGnss") == nullptr) continue;
+                // discard frames without CaptureGnss
+                if (ref_KF->getCaptureOf(getSensor(), "CaptureGnss") == nullptr) continue;
 
                 // static cast
                 auto ref_cap_gnss =