diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt b/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt
index 03f673d859784e177fb82a8c854de30e3e35769d..fe604fe59ec0e666bfa20da71d05c298114b894f 100644
--- a/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt
+++ b/Tracking/TrkTools/TrkAmbiguityProcessor/CMakeLists.txt
@@ -8,8 +8,9 @@ atlas_subdir( TrkAmbiguityProcessor )
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PRIVATE
                           Control/AthenaBaseComps
+                          Control/SGTools
                           DetectorDescription/AtlasDetDescr
-                          GaudiKernel
+                          GaudiKernel			  
                           InnerDetector/InDetRecEvent/InDetPrepRawData
                           InnerDetector/InDetRecTools/InDetRecToolInterfaces
                           Tracking/TrkDetDescr/TrkDetElementBase
@@ -20,7 +21,7 @@ atlas_depends_on_subdirs( PRIVATE
                           Tracking/TrkEvent/TrkTrackSummary
                           Tracking/TrkFitter/TrkFitterInterfaces
                           Tracking/TrkTools/TrkToolInterfaces
-                          Tracking/TrkValidation/TrkValInterfaces
+                          Tracking/TrkValidation/TrkValInterfaces
                           Tracking/TrkExtrapolation/TrkExInterfaces          )
 
 # External dependencies:
diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements b/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements
index 5edc1e896cca8d359af2cb713f0f5f5a182d8785..170b0267bb52d7c63a8584ff6e70e2df6f11ca2e 100644
--- a/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements
+++ b/Tracking/TrkTools/TrkAmbiguityProcessor/cmt/requirements
@@ -3,7 +3,10 @@ package TrkAmbiguityProcessor
 author Edward Moyse <edward.moyse@cern.ch>
 
 public
-use  AtlasPolicy                AtlasPolicy-*                   
+use  AtlasPolicy                AtlasPolicy-*
+use  SGTools                    SGTools-*                       Control
+use  InDetPrepRawData           InDetPrepRawData-*              InnerDetector/InDetRecEvent
+
 private
 use  AthenaBaseComps            AthenaBaseComps-*               Control
 use  AtlasCLHEP                 AtlasCLHEP-*                    External
@@ -23,6 +26,7 @@ use  TrkTrackSummary            TrkTrackSummary-*               Tracking/TrkEven
 use  InDetRecToolInterfaces     InDetRecToolInterfaces-*        InnerDetector/InDetRecTools  
 use  TrkValInterfaces           TrkValInterfaces-*              Tracking/TrkValidation
 
+
 # uncomment this line if you do want to build the ntuple writing code in
 # apply_tag  use_trkambproc_ntuple
 
diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx
index 20a7d3a26fdef75338f7bcaea5f4beafed2bdc45..94130e19942bbaa9825df70a09af63c4cdf9cd96 100644
--- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx
+++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx
@@ -52,7 +52,6 @@ Trk::DenseEnvironmentsAmbiguityProcessorTool::DenseEnvironmentsAmbiguityProcesso
   m_splitProbTool("InDet::NnPixelClusterSplitProbTool/NnPixelClusterSplitProbTool"),  
   m_assoTool("Trk::PRD_AssociationTool/DEAmbi_PRD_AssociationTool"),
   m_finalTracks(0),
-  m_refitTracks(0),
   m_Nevents(0),
   m_Ncandidates(4), m_NcandScoreZero(4), m_NcandDouble(4),
   m_NscoreOk(4),m_NscoreZeroBremRefit(4),m_NscoreZeroBremRefitFailed(4),
@@ -494,13 +493,12 @@ TrackCollection*  Trk::DenseEnvironmentsAmbiguityProcessorTool::process(const Tr
   
   if(m_applydRcorrection)
   {
+      TrackCollection refit_tracks;
       // create map of track dRs
-      storeTrkDistanceMapdR(*m_finalTracks);
-      if(m_refitTracks){
-          for(auto track : *m_refitTracks)
-          {
+      storeTrkDistanceMapdR(*m_finalTracks,refit_tracks);
+      for(const Trk::Track* track : refit_tracks)
+      {
               refitTrack(track);
-          }
       }
   }
 
@@ -532,8 +530,6 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::reset()
   //final copy - ownership is passed out of algorithm
   m_finalTracks = new TrackCollection;
   
-  m_refitTracks = new TrackCollection;
-
   if (m_monitorTracks)
     m_observerTool->reset();
 
@@ -1471,7 +1467,7 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::dumpTracks( const TrackCollec
 
 //==================================================================================================
 
-void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( const TrackCollection& tracks )
+void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( const TrackCollection& tracks, TrackCollection &refit_tracks_out )
 {
   ATH_MSG_VERBOSE ("Creating track Distance dR map");
   m_dRMap = new InDet::DRMap;
@@ -1568,7 +1564,7 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( const
 	        }
          }
       }
-      if(refit) m_refitTracks->push_back(track);
+      if(refit) refit_tracks_out.push_back(track);
   }
   return;
 }
diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h
index 1cf026f942c3d316815201369dd9d7e17e7555e8..28e29fb6389fcf2f5faab92ce86f847206ce500a 100644
--- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h
+++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h
@@ -121,7 +121,7 @@ namespace Trk {
       void dumpTracks(const TrackCollection& tracks);
 
       /** stores the minimal dist(trk,trk) for covariance correction*/
-      void storeTrkDistanceMapdR(const TrackCollection& tracks );
+      void storeTrkDistanceMapdR(const TrackCollection& tracks, TrackCollection &refit_tracks_out );
       
       /**  Find SiS Tracks that share hits in the track score map*/
       void overlapppingTracks();
@@ -207,8 +207,6 @@ namespace Trk {
          Recreated anew each time process() is called*/ 
       TrackCollection* m_finalTracks;
       
-      TrackCollection* m_refitTracks;
-
       /**NN split sprob cut for 2 particle clusters */      
       float m_sharedProbCut;