diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
index e6632595257ba83be88b6d9f649d002f7036c9d8..7487b652ad3490230c89dc5206e67a452dfcd922 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
@@ -59,14 +59,15 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.
 
         from TRT_ElectronPidTools.TRT_ElectronPidToolsConf import InDet__TRT_LocalOccupancy
         TRT_LocalOccupancy = InDet__TRT_LocalOccupancy(name="TRT_LocalOccupancy", isTrigger= False )
-        ToolSvc += TRT_LocalOccupancy
 
         job += CfgGetter.getAlgorithm("TRT_OverlayDigitization")
         job += CfgGetter.getAlgorithm("TRTOverlay")
-
+        job.TRTOverlay.TRT_LocalOccupancyTool  = TRT_LocalOccupancy
+        
         from InDetRecExample.InDetJobProperties import InDetFlags
         include("InDetRecExample/InDetRecConditionsAccess.py")
-
+        job.InDetTRTStrawStatusSummarySvc  = InDetTRTStrawStatusSummarySvc 
+        
         if overlayFlags.isDataOverlay():
             job.InDetTRTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+TRT_RDOs"
             #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TRT_RDO_Container/TRT_RDOs" ]
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/CMakeLists.txt b/InnerDetector/InDetRawAlgs/InDetOverlay/CMakeLists.txt
index bfd79b079e996995f2a65398a9ab1a483ca3d3ac..7282308268c7020d5402f74199a6621ecb278b57 100644
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/CMakeLists.txt
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/CMakeLists.txt
@@ -28,7 +28,7 @@ atlas_add_component( InDetOverlay
                      src/*.cxx
                      src/components/*.cxx
                      INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} 
-                     LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps IDC_OverlayBase GaudiKernel InDetRawData StoreGateLib SGtests CxxUtils GeneratorObjects InDetIdentifier InDetSimData TrkTrack )
+                     LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps IDC_OverlayBase GaudiKernel InDetRawData StoreGateLib SGtests CxxUtils GeneratorObjects InDetIdentifier InDetSimData TrkTrack TRT_ConditionsServicesLib)
 
 # Install files from the package:
 atlas_install_headers( InDetOverlay )
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/TRTOverlay.h b/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/TRTOverlay.h
index b6f44e88087a94590a9cde55fbc3514b9fa1be4b..4bc4fba12cde89006cdc4a3b6c681638886c078f 100644
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/TRTOverlay.h
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/TRTOverlay.h
@@ -12,6 +12,7 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "InDetSimData/InDetSimDataCollection.h"
 #include "TRT_ElectronPidTools/ITRT_LocalOccupancy.h"
+#include "TRT_ConditionsServices/ITRT_StrawStatusSummarySvc.h"
 
 class TRT_ID;
 
@@ -63,6 +64,8 @@ private:
   double                                 m_HTOccupancyCorrectionB_noE;
   double                                 m_HTOccupancyCorrectionEC_noE;
   ToolHandle<InDet::ITRT_LocalOccupancy> m_TRT_LocalOccupancyTool; 
+  ServiceHandle<ITRT_StrawStatusSummarySvc>   m_TRTStrawSummarySvc;
+
 };
 
 #endif // INDETOVERLAY_TRTOVERLAY_H
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/python/InDetOverlayConfig.py b/InnerDetector/InDetRawAlgs/InDetOverlay/python/InDetOverlayConfig.py
index ae56833b4415c0c019ac5e7863cd7d4b0a0775fc..46ea3c956e0541e7624184c7574e6def15c5add6 100644
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/python/InDetOverlayConfig.py
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/python/InDetOverlayConfig.py
@@ -44,8 +44,10 @@ def getTRTOverlay(name="TRTOverlay", **kwargs):
     kwargs.setdefault("TRT_LocalOccupancyTool", "TRT_LocalOccupancy")
 
     # HT hit correction fraction
-    kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrel", 0.160)
-    kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcap", 0.130)
+    kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrel", 0.110)
+    kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcap", 0.090)
+    kwargs.setdefault("TRT_HT_OccupancyCorrectionBarrelNoE", 0.060)
+    kwargs.setdefault("TRT_HT_OccupancyCorrectionEndcapNoE", 0.050)
 
     return CfgMgr.TRTOverlay(name, **kwargs)
 
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/src/TRTOverlay.cxx b/InnerDetector/InDetRawAlgs/InDetOverlay/src/TRTOverlay.cxx
index edd963f9abc12b18d2dcb36c3a010284657a2925..c4431e59184000f1e2520dd7051e5fd9c38afc41 100644
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/src/TRTOverlay.cxx
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/src/TRTOverlay.cxx
@@ -70,17 +70,20 @@ TRTOverlay::TRTOverlay(const std::string &name, ISvcLocator *pSvcLocator)
     m_rndmSvc("AtRndmGenSvc",name),
     m_rndmEngineName("TRTOverlay"),
     m_rndmEngine(nullptr),
-    m_TRT_LocalOccupancyTool("TRT_LocalOccupancy")
+    m_TRT_LocalOccupancyTool("TRT_LocalOccupancy",this),
+    m_TRTStrawSummarySvc("TRT_StrawStatusSummarySvc","TRT_StrawStatusSummarySvc")
 {
   declareProperty("RndmSvc", m_rndmSvc, "Random Number Service");
   declareProperty("RndmEngine", m_rndmEngineName, "Random engine name");
 
   declareProperty("TRT_LocalOccupancyTool", m_TRT_LocalOccupancyTool);
 
-  declareProperty("TRT_HT_OccupancyCorrectionBarrel", m_HTOccupancyCorrectionB=0.160);
-  declareProperty("TRT_HT_OccupancyCorrectionEndcap", m_HTOccupancyCorrectionEC=0.130);
-  declareProperty("TRT_HT_OccupancyCorrectionBarrelNoE", m_HTOccupancyCorrectionB_noE=0.105);
-  declareProperty("TRT_HT_OccupancyCorrectionEndcapNoE", m_HTOccupancyCorrectionEC_noE=0.080);
+  declareProperty("TRT_HT_OccupancyCorrectionBarrel", m_HTOccupancyCorrectionB=0.110);
+  declareProperty("TRT_HT_OccupancyCorrectionEndcap", m_HTOccupancyCorrectionEC=0.090);
+  declareProperty("TRT_HT_OccupancyCorrectionBarrelNoE", m_HTOccupancyCorrectionB_noE=0.060);
+  declareProperty("TRT_HT_OccupancyCorrectionEndcapNoE", m_HTOccupancyCorrectionEC_noE=0.050);
+  
+  declareProperty("TRTStrawSummarySvc",  m_TRTStrawSummarySvc);  
 }
 
 StatusCode TRTOverlay::initialize()
@@ -121,6 +124,17 @@ StatusCode TRTOverlay::initialize()
   // Retrieve TRT local occupancy tool
   CHECK(m_TRT_LocalOccupancyTool.retrieve());
 
+  if (!m_TRTStrawSummarySvc.empty() && m_TRTStrawSummarySvc.retrieve().isFailure() ) {
+    ATH_MSG_ERROR ("Failed to retrieve StrawStatus Summary " << m_TRTStrawSummarySvc);
+    ATH_MSG_ERROR ("configure as 'None' to avoid its loading.");
+    return StatusCode::FAILURE;
+  } else {
+    if ( !m_TRTStrawSummarySvc.empty()) 
+      ATH_MSG_INFO( "Retrieved tool " << m_TRTStrawSummarySvc );
+  }
+
+
+
   return StatusCode::SUCCESS;
 }
 
@@ -335,6 +349,15 @@ void TRTOverlay::mergeTRTCollections(TRT_RDO_Collection *bkgCollection,
               }
             }
 
+            // Determine what type of straw was hit
+            bool isXenonStraw = false;
+            if (!m_TRTStrawSummarySvc.empty()) {
+              if (m_TRTStrawSummarySvc->getStatusHT(rdoId) == TRTCond::StrawStatus::Good) {
+                isXenonStraw = true;
+              }
+            }
+
+
 
             unsigned int newword = 0;
             //Get random number
@@ -346,7 +369,7 @@ void TRTOverlay::mergeTRTCollections(TRT_RDO_Collection *bkgCollection,
               HTOccupancyCorrection = abs(det) > 1 ? m_HTOccupancyCorrectionEC_noE : m_HTOccupancyCorrectionB_noE;
             }
 
-            if( occupancy * HTOccupancyCorrection > CLHEP::RandFlat::shoot( m_rndmEngine, 0, 1) )
+            if( isXenonStraw && occupancy * HTOccupancyCorrection > CLHEP::RandFlat::shoot( m_rndmEngine, 0, 1) )
               newword += 1 << (26-9);
             //
             TRT_LoLumRawData newrdo( pr1->identify(), newword);
@@ -364,3 +387,4 @@ void TRTOverlay::mergeTRTCollections(TRT_RDO_Collection *bkgCollection,
     outputCollection->push_back(p_rdo);
   } // <= while
 }
+