diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx
index a4d7d25bc8da0ffe4a11917e0585459e2a7e1d56..413f6a8cd5512c5d363ed02922c625210df87e1a 100644
--- a/reco/L1/CbmL1.cxx
+++ b/reco/L1/CbmL1.cxx
@@ -860,12 +860,28 @@ InitStatus CbmL1::Init()
       trd2dIter2.SetExtendTracksFlag(true);
       //trd2dIter2.SetFirstStationIndex(12);
 
+      auto trd2dIter3 = L1CAIteration("trd2dIter3");
+      trd2dIter3.SetMinNhits(4);
+      trd2dIter3.SetMinNhitsStation0(4);
+      trd2dIter3.SetTrackChi2Cut(100 * 7.f);         //10.f
+      trd2dIter3.SetTripletChi2Cut(0.5 * 23.4450f);  // = 7.815 * 3;  // prob = 0.05
+      trd2dIter3.SetDoubletChi2Cut(0.7 * 7.56327f);  // = 1.3449 * 2.f / 3.f;  // prob = 0.1
+      trd2dIter3.SetPickGather(3.0f);
+      trd2dIter3.SetTripletLinkChi2(10 * 300.);
+      trd2dIter3.SetMaxInvMom(1.0 / 0.05);  //(1.0 / 0.5);
+      trd2dIter3.SetMaxSlopePV(0 * .5f);
+      trd2dIter3.SetMaxSlope(.4);  //.5f);
+      trd2dIter3.SetMaxDZ(0.05);
+      trd2dIter3.SetTargetPosSigmaXY(7 * 10, 6 * 10);  //(1, 1);
+      trd2dIter3.SetPrimaryFlag(false);
+      trd2dIter3.SetExtendTracksFlag(true);
+
       // Initialize CA track finder iterations sequence
 
       fInitManager.SetCAIterationsNumberCrosscheck(1);
       //fInitManager.PushBackCAIteration(trackingIterFastPrim);
       //fInitManager.PushBackCAIteration(globalIterPrimFast);
-      fInitManager.PushBackCAIteration(trd2dIter2);
+      fInitManager.PushBackCAIteration(trd2dIter3);
       /*
       fInitManager.SetCAIterationsNumberCrosscheck(5);
       fInitManager.PushBackCAIteration(trackingIterFastPrim);
diff --git a/reco/L1/L1Algo/L1CATrackFinder.cxx b/reco/L1/L1Algo/L1CATrackFinder.cxx
index f9cde9c94e0664ad839dba6412296907a9934c58..20ec8e43c1aba3079b6953eae2b7020c4afb677e 100644
--- a/reco/L1/L1Algo/L1CATrackFinder.cxx
+++ b/reco/L1/L1Algo/L1CATrackFinder.cxx
@@ -72,7 +72,7 @@ using std::endl;
 
 bool L1Algo::checkTripletMatch(const L1Triplet& l, const L1Triplet& r, fscal& dchi2) const
 {
-  dchi2 = 0.;
+  dchi2 = 1.e20;
 
   if (r.GetMHit() != l.GetRHit()) return false;
   if (r.GetLHit() != l.GetMHit()) return false;
@@ -109,6 +109,7 @@ bool L1Algo::checkTripletMatch(const L1Triplet& l, const L1Triplet& r, fscal& dc
 
     if (dty * dty > fTripletLinkChi2 * Cty) return false;
     if (dtx * dtx > fTripletLinkChi2 * Ctx) return false;
+
     dchi2 = 0.5f * (dtx * dtx / Ctx + dty * dty / Cty);
   }
 
@@ -1216,6 +1217,8 @@ inline void L1Algo::findTripletsStep3(  // input
     L1Triplet& tr1 = fTriplets[istal][Thread].back();
     tr1.SetIsMomentumFitted(isMomentumFitted);
     tr1.SetLevel(0);
+    tr1.SetFNeighbour(0);
+    tr1.SetNNeighbours(0);
 
     fHitNtriplets[ihitl]++;
 
@@ -1969,7 +1972,7 @@ void L1Algo::CATrackFinder()
                                       i1G_2)  //schedule(dynamic, 2)
 #endif
       for (Tindex ip = 0; ip < (Tindex) fSingletPortionSize[istal].size(); ++ip) {
-        Tindex n_2   = 0;  /// number of doublets in portion
+        Tindex n_2 = 0;  /// number of doublets in portion
 
         hitsm_2.clear();
         i1_2.clear();