diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
index 0e7359a72133d201a28d2bcfeac5219869e69f2c..2867debb784476d6f611b0b58b00fa9e300f3bb6 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+   Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
  */
 
 // **********************************************************************
@@ -1320,9 +1320,8 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() {
     } // TSOS on track
     ATH_MSG_DEBUG(" End of loop on TSOS of track " << nTrackCount << "  Now searching for holes ");
 
-    const DataVector<const Trk::TrackStateOnSurface>* HTSOS;
     if (m_holeSearchTool != 0) {
-      HTSOS = m_holeSearchTool->getHolesOnTrack(**trksItr);
+      std::unique_ptr<const Trk::TrackStates> HTSOS (m_holeSearchTool->getHolesOnTrack(**trksItr));
       ATH_MSG_DEBUG(" -- Hole TSOS collection has size " << HTSOS->size());
       DataVector<const Trk::TrackStateOnSurface>::const_iterator HTSOSItr = HTSOS->begin();
       DataVector<const Trk::TrackStateOnSurface>::const_iterator HTSOSItrE = HTSOS->end();
@@ -1586,7 +1585,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms() {
         } // holes as measurements (?)
       }
       ATH_MSG_DEBUG("end of loop on " << HTSOS->size() << " holes ");
-      delete HTSOS;
     } // hole tool exists
   }
   ATH_MSG_DEBUG("end of loop on " << nTrackCount << " tracks ok");
diff --git a/InnerDetector/InDetValidation/InDetTrackValidation/src/HoleSearchValidation.cxx b/InnerDetector/InDetValidation/InDetTrackValidation/src/HoleSearchValidation.cxx
index c6a5c871e070d92a67e9d158f6b7bb3e034466cb..4111ebdb4b2b344a37da223411d764ee7d6f0bea 100755
--- a/InnerDetector/InDetValidation/InDetTrackValidation/src/HoleSearchValidation.cxx
+++ b/InnerDetector/InDetValidation/InDetTrackValidation/src/HoleSearchValidation.cxx
@@ -482,8 +482,8 @@ unsigned int HoleSearchValidation::doHoleSearch( const Trk::Track* track) const
   ATH_MSG_VERBOSE(  "start hole search for track ( " << track << ")" ) ;
   unsigned int nHoles(0);
 
-  const DataVector<const Trk::TrackStateOnSurface>* holesOnTrack 
-    = m_holeSearchTool->getHolesOnTrack(*track, track->info().particleHypothesis());
+  std::unique_ptr<const Trk::TrackStates> holesOnTrack
+    (m_holeSearchTool->getHolesOnTrack(*track, track->info().particleHypothesis()));
   // loop over holes
   if (!holesOnTrack) {
     ATH_MSG_WARNING(  "HoleSearchTool returned NULL !" ) ;
@@ -501,7 +501,6 @@ unsigned int HoleSearchValidation::doHoleSearch( const Trk::Track* track) const
       printInfoTSoS( *it );
     } // end loop on holes
   }
-  delete holesOnTrack;
   return nHoles;
 }