diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
index 1ef104fa4b479dde6ce3be62b98ad6a6feb31b4a..37110a92460a86aee301b1ff941972e50d1040b4 100644
--- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
+++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
@@ -1674,7 +1674,8 @@ void SiliconTrackingAlg::CreateTrack(TrackExtended * trackAR ) {
   
   for (int itrk=0; itrk<nTrk; ++itrk) {
     TrackExtended * trackOld = _trackImplVec[itrk];
-    TrackerHitExtendedVec& hitVecOld = trackOld->getTrackerHitExtendedVec();
+    // fucd: TrackerHitExtendedVec& will change after merge split tracks, so must TrackerHitExtendedVec
+    TrackerHitExtendedVec hitVecOld = trackOld->getTrackerHitExtendedVec();
     
     float phiNew = trackAR->getPhi();
     float phiOld = trackOld->getPhi();