diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx
index 33f7e5bb81c2eeadc7680d46e3b3a1047e2ab7b1..ebf5250e8f55db257d44b758545f4ab826891bdf 100644
--- a/reco/L1/CbmL1ReadEvent.cxx
+++ b/reco/L1/CbmL1ReadEvent.cxx
@@ -87,6 +87,8 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
 {
   if (fVerbose >= 10) cout << "ReadEvent: start." << endl;
 
+  fData_->Clear();
+
   // clear arrays for next event
   vMCPoints.clear();
   vMCPoints_in_Time_Slice.clear();
@@ -390,7 +392,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
         th.id         = tmpHits.size();
         th.iStation   = mh->GetStationNr();
         th.iStripF    = firstDetStrip + j;
-        th.iStripB  = th.iStripF;
+        th.iStripB    = th.iStripF;
         if (NStrips <= th.iStripF) { NStrips = th.iStripF + 1; }
 
         TVector3 pos, err;
@@ -914,8 +916,8 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
   fData_->fStripFlag.reserve(NStrips);
   fData_->fStripFlag.assign(NStrips, 0);
   for (int ih = 0; ih < nHits; ih++) {
-    TmpHit& th                 = tmpHits[ih];
-    char flag                  = th.iStation * 4;
+    TmpHit& th                     = tmpHits[ih];
+    char flag                      = th.iStation * 4;
     fData_->fStripFlag[th.iStripF] = flag;
     fData_->fStripFlag[th.iStripB] = flag;
   }  // ih
diff --git a/reco/L1/L1Algo/L1CAMergeClones.cxx b/reco/L1/L1Algo/L1CAMergeClones.cxx
index cd548f0c50ac385aedf7f2f41bda1ed65752ac2d..97b82acc862eccf43fd351b960c8e942f0fd7a09 100644
--- a/reco/L1/L1Algo/L1CAMergeClones.cxx
+++ b/reco/L1/L1Algo/L1CAMergeClones.cxx
@@ -234,7 +234,7 @@ void L1Algo::CAMergeClones()
   neighbour.resize(nTracks);
   isDownstreamNeighbour.resize(nTracks);
 
-  THitI start_hit     = 0;
+  THitI start_hit = 0;
 #ifdef OMP
 #pragma omp parallel for
 #endif
@@ -287,6 +287,7 @@ void L1Algo::CAMergeClones()
       Tb.ty  = fTracks[iTr].TFirst[3];
       Tb.qp  = fTracks[iTr].TFirst[4];
       Tb.z   = fTracks[iTr].TFirst[5];
+      Tb.t   = fTracks[iTr].TFirst[6];
       Tb.C00 = fTracks[iTr].CFirst[0];
       Tb.C10 = fTracks[iTr].CFirst[1];
       Tb.C11 = fTracks[iTr].CFirst[2];
@@ -302,6 +303,12 @@ void L1Algo::CAMergeClones()
       Tb.C42 = fTracks[iTr].CFirst[12];
       Tb.C43 = fTracks[iTr].CFirst[13];
       Tb.C44 = fTracks[iTr].CFirst[14];
+      Tb.C50 = fTracks[iTr].CFirst[15];
+      Tb.C51 = fTracks[iTr].CFirst[16];
+      Tb.C52 = fTracks[iTr].CFirst[17];
+      Tb.C53 = fTracks[iTr].CFirst[18];
+      Tb.C54 = fTracks[iTr].CFirst[19];
+      Tb.C55 = fTracks[iTr].CFirst[20];
 
       unsigned short staf = lastStation[jTr];
 
@@ -311,6 +318,7 @@ void L1Algo::CAMergeClones()
       Tf.ty  = fTracks[jTr].TLast[3];
       Tf.qp  = fTracks[jTr].TLast[4];
       Tf.z   = fTracks[jTr].TLast[5];
+      Tf.t   = fTracks[jTr].TLast[6];
       Tf.C00 = fTracks[jTr].CLast[0];
       Tf.C10 = fTracks[jTr].CLast[1];
       Tf.C11 = fTracks[jTr].CLast[2];
@@ -326,6 +334,13 @@ void L1Algo::CAMergeClones()
       Tf.C42 = fTracks[jTr].CLast[12];
       Tf.C43 = fTracks[jTr].CLast[13];
       Tf.C44 = fTracks[jTr].CLast[14];
+      Tf.C50 = fTracks[jTr].CLast[15];
+      Tf.C51 = fTracks[jTr].CLast[16];
+      Tf.C52 = fTracks[jTr].CLast[17];
+      Tf.C53 = fTracks[jTr].CLast[18];
+      Tf.C54 = fTracks[jTr].CLast[19];
+      Tf.C55 = fTracks[jTr].CLast[20];
+
       //std::cout << "!!!!!!! Chi2 !!!!!!      "<<fTracks[iTr].TFirst[0]<<"  "<<fTracks[jTr].TLast[0]<<std::endl;
 
       //if(((Tf.qp - Tb.qp)*(Tf.qp - Tb.qp)/(Tb.C44+Tf.C44))[0] > 25*10*7) continue;
@@ -344,7 +359,7 @@ void L1Algo::CAMergeClones()
 
       fvec zm = vStations[stam].z;
       fvec xm = 0.5 * (Tf.x + Tf.tx * (zm - Tf.z) + Tb.x + Tb.tx * (zm - Tb.z));
-      fvec ym = 0.5 * (Tb.y + Tb.ty * (zm - Tb.z) + Tb.y + Tb.ty * (zm - Tb.z));
+      fvec ym = 0.5 * (Tf.y + Tf.ty * (zm - Tf.z) + Tb.y + Tb.ty * (zm - Tb.z));
       vStations[stam].fieldSlice.GetFieldValue(xm, ym, fBm);
       fld.Set(fBb, Tb.z, fBm, zm, fBf, Tf.z);
 
diff --git a/reco/L1/L1Algo/L1TrackExtender.cxx b/reco/L1/L1Algo/L1TrackExtender.cxx
index 317a7839b4780e464f60ffc4ae2f57be1c02a8e7..2e917ff1f00919f3bbc5ab763a70bf3ea01606c9 100644
--- a/reco/L1/L1Algo/L1TrackExtender.cxx
+++ b/reco/L1/L1Algo/L1TrackExtender.cxx
@@ -123,9 +123,9 @@ void L1Algo::BranchFitterFast(const L1Branch& t, L1TrackPar& T, const bool dir,
   int ista      = ista2;
 
   for (int i = iFirstHit + step; step * i <= step * iLastHit; i += step) {
-    const L1Hit& hit    = (*vStsHits)[hits[i]];
-    ista_prev           = ista;
-    ista                = GetFStation((*fStripFlag)[hit.f]);
+    const L1Hit& hit = (*vStsHits)[hits[i]];
+    ista_prev        = ista;
+    ista             = GetFStation((*fStripFlag)[hit.f]);
 
     L1Station& sta = vStations[ista];
 
@@ -283,7 +283,7 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& T, const bool dir,
       ih += StsHitsUnusedStartIndex[ista];
       const L1Hit& hit = (*vStsHitsUnused)[ih];
       //TODO: bug, it should be hit.dt*hit.dt
-      if (fabs(hit.t - T.t[0]) > sqrt(T.C55[0] + hit.dt) * 5) continue;
+      if (fabs(hit.t - T.t[0]) > sqrt(T.C55[0] + hit.dt * hit.dt) * 5) continue;
 
       if (GetFUsed((*fStripFlag)[hit.f] | (*fStripFlag)[hit.b])) continue;  // if used
 
@@ -315,9 +315,9 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& T, const bool dir,
 
     newHits.push_back((*RealIHitP)[iHit_best]);
 
-    const L1Hit& hit    = (*vStsHitsUnused)[iHit_best];
-    fvec u              = hit.u;
-    fvec v              = hit.v;
+    const L1Hit& hit = (*vStsHitsUnused)[iHit_best];
+    fvec u           = hit.u;
+    fvec v           = hit.v;
     fvec x, y, z;
     StripsToCoor(u, v, x, y, sta);
     z = (*vStsZPos)[hit.iz];