diff --git a/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp b/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp
index 400774f26b5aa2c19da438f47fbce05d0fbf2c20..3cffd0f0719998ec93f88631c6e50b9f794a81cd 100644
--- a/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp
+++ b/Reconstruction/Tracking/src/Clupatra/clupatra_new.cpp
@@ -288,7 +288,7 @@ namespace clupatra_new{
 		encoder[UTIL::ILDCellID0::subdet] = UTIL::ILDDetID::TPC ;
 
 		edm4hep::ConstTrackerHit firstHit; // =  0 ;
-                firstHit.unlink();
+                //firstHit.unlink();
 
 		IMarlinTrack* bwTrk = 0 ;
 
@@ -1354,11 +1354,18 @@ start:
 					//IMPL::TrackerHitImpl* thi = dynamic_cast<IMPL::TrackerHitImpl*> ( hitsInFit[i].first ) ;
 					//thi->setQualityBit( UTIL::ILDTrkHitQualityBit::USED_IN_FIT , 1 )  ;
 				}
-
-				edm4hep::TrackState tsIP;
-				edm4hep::TrackState tsFH;
-				edm4hep::TrackState tsLH;
-				edm4hep::TrackState tsCA;
+				edm4hep::TrackState tsBase;
+				tsBase.D0 = 0;
+				tsBase.phi = 0;
+				tsBase.omega = 0;
+				tsBase.Z0 = 0;
+				tsBase.tanLambda = 0;
+				tsBase.referencePoint = edm4hep::Vector3f(0,0,0);
+				tsBase.covMatrix = std::array<float, 15>{};
+				edm4hep::TrackState tsIP(tsBase);
+				edm4hep::TrackState tsFH(tsBase);
+				edm4hep::TrackState tsLH(tsBase);
+				edm4hep::TrackState tsCA(tsBase);
 
 				tsIP.location = lcio::TrackState::AtIP;
 				tsFH.location = lcio::TrackState::AtFirstHit;
@@ -1385,10 +1392,9 @@ start:
 				code = mtrk->getTrackState( fHit, tsFH, chi2, ndf ) ;
 
 				if( code != MarlinTrk::IMarlinTrack::success ){
-
-					   std::cout << "  >>>>>>>>>>> PLCIOTrackConverter :  could not get TrackState at first Hit !!?? "
-					   << " error code : " << MarlinTrk::errorCode( code )
-					   << std::endl ;
+				  //std::cout << "  >>>>>>>>>>> PLCIOTrackConverter :  could not get TrackState at first Hit !!?? "
+				  //	    << " error code : " << MarlinTrk::errorCode( code )
+				  //	    << std::endl ;
 				}
 
 				// ======= get TrackState at last hit  ========================
@@ -1398,17 +1404,17 @@ start:
 #if use_fit_at_last_hit
 				code = mtrk->getTrackState( lHit, tsLH, chi2, ndf ) ;
 #else     // get the track state at the last hit by propagating from the last(first) constrained fit position (a la MarlinTrkUtils)
-				edm4hep::ConstTrackerHit last_constrained_hit;
+				edm4hep::ConstTrackerHit last_constrained_hit(0);
 				code = mtrk->getTrackerHitAtPositiveNDF( last_constrained_hit );
-				mtrk->smooth() ;
+				//code = mtrk->smooth() ;
 				if( code != MarlinTrk::IMarlinTrack::success ){
-				  std::cout << "last_constrained_hit is unavaibale" << std::endl;
+				  //std::cout << "last_constrained_hit is avaibale? " << last_constrained_hit.isAvailable() << std::endl;
 				}
-				else{
+				//else{
 // std::cout << "the hit" << std::endl;
 // std::cout << lHit.getCellID0() << std::endl;
 // std::cout << last_constrained_hit << std::endl;
-				//code = mtrk->smooth() ;
+				  code = mtrk->smooth() ;
 // std::cout << "Smooth success" << std::endl;
 				// gear::Vector3D last_hit_pos( lHit->getPosition()[0], lHit->getPosition()[1], lHit->getPosition()[2] );
 // std::cout << "lHit = " << lHit << std::endl;
@@ -1420,14 +1426,13 @@ start:
 				  edm4hep::Vector3d last_hit_pos( lHit.getPosition() );
 // std::cout << "lHit = " << lHit << std::endl;
 				  code = mtrk->propagate( last_hit_pos, last_constrained_hit, tsLH, chi2, ndf);
-                                } 
+				  //}
 // std::cout << "Propagate success" << std::endl;
 #endif
 
 // std::cout << "We are here" << std::endl; 
 				if( code != MarlinTrk::IMarlinTrack::success ){
-
-					std::cout << "  >>>>>>>>>>> PLCIOTrackConverter :  could not get TrackState at last Hit !!?? " << std::endl ;
+				  //std::cout << "  >>>>>>>>>>> PLCIOTrackConverter :  could not get TrackState at last Hit !!?? " << std::endl ;
 				}
 
 				// ======= get TrackState at calo face  ========================
@@ -1459,8 +1464,7 @@ start:
 
 				}
 				if ( code !=MarlinTrk::IMarlinTrack::success ) {
-
-					// streamlog_out( DEBUG6 ) << "  >>>>>>>>>>> PLCIOTrackConverter :  could not get TrackState at calo face !!?? " << std::endl ;
+				  //std::cout << "  >>>>>>>>>>> PLCIOTrackConverter :  could not get TrackState at calo face !!?? " << std::endl ;
 				}
 
 				// ======= get TrackState at IP ========================
@@ -1475,10 +1479,9 @@ start:
 				code = ( UsePropagate ?   mtrk->propagate( ipv, fHit, tsIP, chi2, ndf ) :  mtrk->extrapolate( ipv, tsIP, chi2, ndf ) ) ;
 
 				if( code != MarlinTrk::IMarlinTrack::success ){
-
-					std::cout << "  >>>>>>>>>>> PLCIOTrackConverter :  could not extrapolate TrackState to IP !!?? " << std::endl ;
+				  //std::cout << "  >>>>>>>>>>> PLCIOTrackConverter :  could not extrapolate TrackState to IP !!?? " << std::endl ;
 				}
-
+				//std::cout << "D0 = " << tsLH.D0 << " phi = " << tsLH.phi << " omega = " << tsLH.omega << " Z0 = " << tsLH.Z0 << " tanLambda = " << tsLH.tanLambda << std::endl;
 				trk.addToTrackStates( tsIP ) ;
 				trk.addToTrackStates( tsFH ) ;
 				trk.addToTrackStates( tsLH ) ;