diff --git a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx
index 960487547cf719e0f862bb443ef01d8d2b3ca8a8..277e979f429ea090e2c9cdbef35a633ba3b7d9f5 100644
--- a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx
+++ b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx
@@ -2087,9 +2087,13 @@ void InDet::SiSpacePointsSeedMaker_ATLxk::newOneSeed
  InDet::SiSpacePointForSeed*& p3, float z, float seedCandidateQuality) const
 {
   /// get the worst seed so far 
-  std::multimap<float,InDet::SiSpacePointsProSeed*>::reverse_iterator l = data.mapOneSeeds_Pro.rbegin();
-  float worstQualityInMap = (*l).first;
-  InDet::SiSpacePointsProSeed* worstSeedSoFar = (*l).second;
+  float worstQualityInMap = std::numeric_limits<float>::min();
+  InDet::SiSpacePointsProSeed* worstSeedSoFar = nullptr;
+  if (!data.mapOneSeeds_Pro.empty()) {
+    std::multimap<float,InDet::SiSpacePointsProSeed*>::reverse_iterator l = data.mapOneSeeds_Pro.rbegin();
+    worstQualityInMap = (*l).first;
+    worstSeedSoFar = (*l).second;
+  }
   /// There are three cases where we simply add our new seed to the list and push it into the map: 
     /// a) we have not yet reached our max number of seeds 
   if (data.nOneSeeds < m_maxOneSize
@@ -2399,4 +2403,4 @@ bool InDet::SiSpacePointsSeedMaker_ATLxk::isConfirmedSeed(const InDet::SiSpacePo
     }
     /// PPS: the confirmation is the only quality modifier applied
     else return (quality < 0.); 
-}
\ No newline at end of file
+}