diff --git a/DetectorDescription/RegionSelector/python/RegSelToolConfig.py b/DetectorDescription/RegionSelector/python/RegSelToolConfig.py
index 8ed2f0a3b34d4f9c8acb85aa96c528dbac3dbf3f..738b154e955711e3c795788acc9bdecda235798d 100644
--- a/DetectorDescription/RegionSelector/python/RegSelToolConfig.py
+++ b/DetectorDescription/RegionSelector/python/RegSelToolConfig.py
@@ -26,8 +26,10 @@ def _createRegSelCondAlg( detector,  CondAlgConstructor ):
 
     if detector == "Pixel":
         condAlg.DetEleCollKey = "PixelDetectorElementCollection"
+        condAlg.PixelCablingCondData = "PixelCablingCondData"
     elif detector == "SCT":
         condAlg.DetEleCollKey = "SCT_DetectorElementCollection"
+        condAlg.SCT_CablingData = "SCT_CablingData"
     return condAlg
 
 def _createRegSelTool( detector, enable ):
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
index a080d7b9f4e808c1df6dbac9ab07f3e10eb5ad8e..b3ecdd3c5a42ea61a1756278f32fa651fce138a4 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
@@ -96,6 +96,9 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.
                 job.InDetTRTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+TRT_RDOs"
             #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TRT_RDO_Container/TRT_RDOs" ]
 
+            from RegionSelector.RegSelToolConfig import makeRegSelTool_TRT
+            InDetTRTRawDataProvider.RegSelTool = makeRegSelTool_TRT()
+
             #from IOVDbSvc.CondDB import conddb
             #conddb.addFolder("TRT","/TRT/Calib/T0","<tag>TrtCalibt0-UPD2-FDR2-01</tag>")
             #conddb.addFolder("TRT","/TRT/Calib/RT","<tag>TrtCalibRt-UPD2-FDR2-01</tag>")
diff --git a/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.cxx b/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.cxx
index cf62494149841bc157e071dd5d1f58defeeaceae..f719917d7baa0d1781cdcdeb84eb1ee288fafe10 100644
--- a/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.cxx
+++ b/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.cxx
@@ -44,8 +44,8 @@ SiRegSelCondAlg::SiRegSelCondAlg(const std::string& name, ISvcLocator* pSvcLocat
 StatusCode SiRegSelCondAlg::initialize()
 {
   ATH_MSG_DEBUG("SiRegSelCondAlg::initialize() ");
-  ATH_CHECK(m_pixCablingKey.initialize());
-  ATH_CHECK(m_sctCablingKey.initialize());
+  ATH_CHECK(m_pixCablingKey.initialize(!m_pixCablingKey.empty()));
+  ATH_CHECK(m_sctCablingKey.initialize(!m_sctCablingKey.empty()));
   ATH_CHECK(m_detEleCollKey.initialize());
   ATH_CHECK(m_tableKey.initialize());
   ATH_MSG_INFO("SiRegSelCondAlg::initialize() " << m_tableKey );
diff --git a/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.h b/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.h
index 85082b55bc9c8bd31de63c216f043a5517fcb829..9dfdde02749b2b620d2135c9da0e8e9c351bcc0d 100755
--- a/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.h
+++ b/InnerDetector/InDetDetDescr/InDetRegionSelector/src/SiRegSelCondAlg.h
@@ -47,10 +47,10 @@ public:
   /// even if only one is to be used
  
   SG::ReadCondHandleKey<SCT_CablingData> m_sctCablingKey
-    {this, "SCT_CablingData", "SCT_CablingData", "SCT cabling key"};
+    {this, "SCT_CablingData", "", "SCT cabling key"};
 
   SG::ReadCondHandleKey<PixelCablingCondData> m_pixCablingKey
-    {this, "PixelCablingCondData", "PixelCablingCondData", "Pixel cabling key"};
+    {this, "PixelCablingCondData", "", "Pixel cabling key"};
 
   SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_detEleCollKey
     {this, "DetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel/SCT"};
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetReadBS_jobOptions.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetReadBS_jobOptions.py
index 227fa738084468abe796b5f55e662ed09595b738..273f4e58e632c5698d6c63c28472cf4dd3a86b15 100755
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetReadBS_jobOptions.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetReadBS_jobOptions.py
@@ -29,8 +29,10 @@ if DetFlags.readRDOBS.pixel_on():
                                                    RDOKey       = InDetKeys.PixelRDOs(),
                                                    ProviderTool = InDetPixelRawDataProviderTool)
 
-  from RegionSelector.RegSelToolConfig import makeRegSelTool_Pixel
-  InDetPixelRawDataProvider.RegSelTool = makeRegSelTool_Pixel()
+  from OverlayCommonAlgs.OverlayFlags import overlayFlags
+  if not (globalflags.isOverlay() and overlayFlags.isDataOverlay()):
+    from RegionSelector.RegSelToolConfig import makeRegSelTool_Pixel
+    InDetPixelRawDataProvider.RegSelTool = makeRegSelTool_Pixel()
 
   topSequence += InDetPixelRawDataProvider
 
@@ -99,8 +101,10 @@ if DetFlags.readRDOBS.TRT_on():
                                               RDOKey       = InDetKeys.TRT_RDOs(),
                                               ProviderTool = InDetTRTRawDataProviderTool)
 
-  from RegionSelector.RegSelToolConfig import makeRegSelTool_TRT
-  InDetTRTRawDataProvider.RegSelTool = makeRegSelTool_TRT()
+  from OverlayCommonAlgs.OverlayFlags import overlayFlags
+  if not (globalflags.isOverlay() and overlayFlags.isDataOverlay()):
+    from RegionSelector.RegSelToolConfig import makeRegSelTool_TRT
+    InDetTRTRawDataProvider.RegSelTool = makeRegSelTool_TRT()
 
   topSequence += InDetTRTRawDataProvider
   if (InDetFlags.doPrintConfigurables()):
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/python/PixelOverlayConfig.py b/InnerDetector/InDetRawAlgs/InDetOverlay/python/PixelOverlayConfig.py
index 1aa88bed519e313c72ac6ad4a07161ef7363c378..41968a19c5a53700b60e44d1dcc511867718c32d 100644
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/python/PixelOverlayConfig.py
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/python/PixelOverlayConfig.py
@@ -14,6 +14,9 @@ def PixelRawDataProviderAlgCfg(flags, name="PixelRawDataProvider", **kwargs):
 
     kwargs.setdefault("RDOKey", flags.Overlay.BkgPrefix + "PixelRDOs")
 
+    from RegionSelector.RegSelToolConfig import regSelTool_Pixel_Cfg
+    kwargs.setdefault("RegSelTool", acc.popToolsAndMerge(regSelTool_Pixel_Cfg(flags)))
+
     PixelRawDataProvider = CompFactory.PixelRawDataProvider
     alg = PixelRawDataProvider(name, **kwargs)
     acc.addEventAlgo(alg)
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/python/SCTOverlayConfig.py b/InnerDetector/InDetRawAlgs/InDetOverlay/python/SCTOverlayConfig.py
index dcaa48d47e46cd95db59429488a0bfcab310089d..646030837a8514e23c287e5dabcff0455281c1db 100644
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/python/SCTOverlayConfig.py
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/python/SCTOverlayConfig.py
@@ -38,6 +38,9 @@ def SCTRawDataProviderAlgCfg(flags, name="SCTRawDataProvider", **kwargs):
     kwargs.setdefault("LVL1IDKey", flags.Overlay.BkgPrefix + "SCT_LVL1ID")
     kwargs.setdefault("BCIDKey", flags.Overlay.BkgPrefix + "SCT_BCID")
 
+    from RegionSelector.RegSelToolConfig import regSelTool_SCT_Cfg
+    kwargs.setdefault("RegSelTool", acc.popToolsAndMerge(regSelTool_SCT_Cfg(flags)))
+
     SCTRawDataProvider = CompFactory.SCTRawDataProvider
     alg = SCTRawDataProvider(name, **kwargs)
     acc.addEventAlgo(alg)
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/python/TRTOverlayConfig.py b/InnerDetector/InDetRawAlgs/InDetOverlay/python/TRTOverlayConfig.py
index fffe234ed0e4cfdff96a91a23ee46ddc396846f6..3968d375f92654e26f7a2e507f2d5b59cf645967 100644
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/python/TRTOverlayConfig.py
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/python/TRTOverlayConfig.py
@@ -14,6 +14,9 @@ def TRTRawDataProviderAlgCfg(flags, name="TRTRawDataProvider", **kwargs):
 
     kwargs.setdefault("RDOKey", flags.Overlay.BkgPrefix + "TRT_RDOs")
 
+    from RegionSelector.RegSelToolConfig import regSelTool_TRT_Cfg
+    kwargs.setdefault("RegSelTool", acc.popToolsAndMerge(regSelTool_TRT_Cfg(flags)))
+
     TRTRawDataProvider = CompFactory.TRTRawDataProvider
     alg = TRTRawDataProvider(name, **kwargs)
     acc.addEventAlgo(alg)
diff --git a/Simulation/Tests/OverlayTests/test/test_DataOverlay_ConfigTest_Zmumu_TRT.sh b/Simulation/Tests/OverlayTests/test/test_DataOverlay_ConfigTest_Zmumu_TRT.sh
index 23c4d193328d4a445091c7dcbf48195d51b39cb9..ab71694d01310f2d8869cb1d30ee75ed26d20437 100755
--- a/Simulation/Tests/OverlayTests/test/test_DataOverlay_ConfigTest_Zmumu_TRT.sh
+++ b/Simulation/Tests/OverlayTests/test/test_DataOverlay_ConfigTest_Zmumu_TRT.sh
@@ -16,7 +16,7 @@
 events=2
 
 Overlay_tf.py \
---detectors TRT \
+--detectors TRT Pixel \
 --inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.OverlaySim/HITS.pool.root \
 --inputBS_SKIMFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 \
 --outputRDOFile legacyDataOverlayRDO.pool.root \
@@ -30,7 +30,7 @@ Overlay_tf.py \
 --athenaopts '"--config-only=ConfigLegacy.pkl"'
 
 Overlay_tf.py \
---detectors TRT \
+--detectors TRT Pixel \
 --inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.OverlaySim/HITS.pool.root \
 --inputBS_SKIMFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 \
 --outputRDOFile legacyDataOverlayRDO.pool.root \
@@ -52,7 +52,7 @@ if [ $rc -eq 0 ]
 then
     Overlay_tf.py \
     --CA \
-    --detectors TRT \
+    --detectors TRT Pixel \
     --inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.OverlaySim/HITS.pool.root \
     --inputBS_SKIMFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 \
     --outputRDOFile dataOverlayRDO.pool.root \