diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py
index 4ff4c76ae523149df42730c6b33fd7e8dc2fd261..771e381fe11d1976a103912cfad24516b37b9b53 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/python/PixelConditionsConfig.py
@@ -202,6 +202,9 @@ def PixelCablingCondAlgCfg(flags, name="PixelCablingCondAlg", **kwargs):
     acc = ComponentAccumulator()
     if not flags.Input.isMC:
         acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/Onl/CablingMap","/PIXEL/CablingMap", className="AthenaAttributeList"))
+        kwargs.setdefault("ReadKey", "/PIXEL/CablingMap")
+    else:
+        kwargs.setdefault("ReadKey", "")
 
     # Cabling parameters
     IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_2016.dat"
@@ -254,8 +257,8 @@ def PixelCablingCondAlgCfg(flags, name="PixelCablingCondAlg", **kwargs):
     kwargs.setdefault("MappingFile", IdMappingDat)
     kwargs.setdefault("PixelModuleData", "PixelModuleData")
     kwargs.setdefault("PixelReadoutSpeedData", "PixelReadoutSpeedData")
-    kwargs.setdefault("ReadKey", "/PIXEL/CablingMap")
     kwargs.setdefault("WriteKey", "PixelCablingCondData")
+    kwargs.setdefault("RecordInInitialize", not flags.Detector.OverlayPixel)
     acc.addCondAlgo(CompFactory.PixelCablingCondAlg(name, **kwargs))
     return acc
 
@@ -288,8 +291,10 @@ def PixelDCSCondStateAlgCfg(flags, name="PixelDCSCondStateAlg", **kwargs):
     acc = ComponentAccumulator()
     if not flags.Input.isMC:
         acc.merge(addFolders(flags, "/PIXEL/DCS/FSMSTATE", "DCS_OFL", className="CondAttrListCollection"))
+        kwargs.setdefault("ReadKeyState", "/PIXEL/DCS/FSMSTATE")
+    else:
+        kwargs.setdefault("ReadKeyState", "")
     kwargs.setdefault("PixelModuleData", "PixelModuleData")
-    kwargs.setdefault("ReadKeyState", "/PIXEL/DCS/FSMSTATE")
     kwargs.setdefault("WriteKeyState", "PixelDCSStateCondData")
     acc.addCondAlgo(CompFactory.PixelDCSCondStateAlg(name, **kwargs))
     return acc
@@ -299,8 +304,10 @@ def PixelDCSCondStatusAlgCfg(flags, name="PixelDCSCondStatusAlg", **kwargs):
     acc = ComponentAccumulator()
     if not flags.Input.isMC:
         acc.merge(addFolders(flags, "/PIXEL/DCS/FSMSTATUS", "DCS_OFL", className="CondAttrListCollection"))
+        kwargs.setdefault("ReadKeyStatus", "/PIXEL/DCS/FSMSTATUS")
+    else:
+        kwargs.setdefault("ReadKeyStatus", "")
     kwargs.setdefault("PixelModuleData", "PixelModuleData")
-    kwargs.setdefault("ReadKeyStatus", "/PIXEL/DCS/FSMSTATUS")
     kwargs.setdefault("WriteKeyStatus", "PixelDCSStatusCondData")
     acc.addCondAlgo(CompFactory.PixelDCSCondStatusAlg(name, **kwargs))
     return acc
@@ -393,8 +400,10 @@ def PixelTDAQCondAlgCfg(flags, name="PixelTDAQCondAlg", **kwargs):
     acc = ComponentAccumulator()
     if flags.Common.isOnline:
         acc.merge(addFolders(flags, "/TDAQ/Resources/ATLAS/PIXEL/Modules", "TDAQ_ONL", className="CondAttrListCollection"))
+        kwargs.setdefault("ReadKey", "/TDAQ/Resources/ATLAS/PIXEL/Modules")
+    else:
+        kwargs.setdefault("ReadKey", "")
     kwargs.setdefault("PixelModuleData", "PixelModuleData")
-    kwargs.setdefault("ReadKey", "/TDAQ/Resources/ATLAS/PIXEL/Modules")
     kwargs.setdefault("WriteKey", "PixelTDAQCondData")
     acc.addCondAlgo(CompFactory.PixelTDAQCondAlg(name, **kwargs))
     return acc
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.cxx
index e13b9032f03a19364199f54eeb9eae3d1ef49676..f15cbe07c4973ee717544a03d46876f91f57684c 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.cxx
@@ -27,7 +27,7 @@ StatusCode PixelCablingCondAlg::initialize() {
   ATH_CHECK(m_condSvc.retrieve());
   ATH_CHECK(m_moduleDataKey.initialize());
   ATH_CHECK(m_readoutspeedKey.initialize());
-  ATH_CHECK(m_readKey.initialize());
+  ATH_CHECK(m_readKey.initialize(!m_readKey.empty()));
 
   ATH_CHECK(m_writeKey.initialize());
   if (m_condSvc->regHandle(this,m_writeKey).isFailure()) {
@@ -35,6 +35,11 @@ StatusCode PixelCablingCondAlg::initialize() {
     return StatusCode::FAILURE;
   }
 
+  if (!m_recordInInitialize.value()) {
+    ATH_MSG_WARNING("Special treatment disabled.");
+    return StatusCode::SUCCESS;
+  }
+
   ATH_MSG_WARNING("Special treatment: Once RegionSelectorTable is fixed, these lines should be removed.");
 
   SG::WriteCondHandle<PixelCablingCondData> writeHandle(m_writeKey);
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.h
index 7dab96c4b8b534fa2eab10f1f8e47b25920a3032..31a63fcae8c0b197201c11abdf6b730b517fd62f 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelCablingCondAlg.h
@@ -43,6 +43,9 @@ class PixelCablingCondAlg : public AthReentrantAlgorithm {
     const PixelID* m_pixelID{nullptr};
     ServiceHandle<ICondSvc> m_condSvc{this, "CondSvc", "CondSvc"};
 
+    Gaudi::Property<bool> m_recordInInitialize
+    {this, "RecordInInitialize", true, "(Temporary) write the cond object in initialize"};
+
     // Keep this untile SegionSelectorTable is fixed.
     Gaudi::Property<uint32_t> m_rodidForSingleLink40
     {this, "RodIDForSingleLink40", 0, "(Temporary) const link speed"};
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.cxx
index 2064c95d484b261c561c8a949d865eeb9aaf0749..7cf5ff6fbb82a73c1f4ce08ae1912ce1bc5ccdbb 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.cxx
@@ -19,7 +19,7 @@ StatusCode PixelDCSCondStateAlg::initialize() {
   ATH_CHECK(m_condSvc.retrieve());
 
   ATH_CHECK(m_moduleDataKey.initialize());
-  ATH_CHECK(m_readKeyState.initialize());
+  ATH_CHECK(m_readKeyState.initialize(!m_readKeyState.empty()));
   ATH_CHECK(m_writeKeyState.initialize());
   if (m_condSvc->regHandle(this, m_writeKeyState).isFailure()) {
     ATH_MSG_FATAL("unable to register WriteCondHandle " << m_writeKeyState.fullKey() << " with CondSvc");
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStatusAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStatusAlg.cxx
index 5e9424bd9b253eb3ae4d3a63a0da1f4aed59eee8..49bb339a95716310980b472350b8391003203e62 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStatusAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStatusAlg.cxx
@@ -19,7 +19,7 @@ StatusCode PixelDCSCondStatusAlg::initialize() {
   ATH_CHECK(m_condSvc.retrieve());
 
   ATH_CHECK(m_moduleDataKey.initialize());
-  ATH_CHECK(m_readKeyStatus.initialize());
+  ATH_CHECK(m_readKeyStatus.initialize(!m_readKeyStatus.empty()));
   ATH_CHECK(m_writeKeyStatus.initialize());
   if (m_condSvc->regHandle(this, m_writeKeyStatus).isFailure()) {
     ATH_MSG_FATAL("unable to register WriteCondHandle " << m_writeKeyStatus.fullKey() << " with CondSvc");
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx
index 221dbbde8a017e3aba520e2ea3f8120a73e65c3e..6a7388683df44a4294775218e13adbcaa36f4a8e 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx
@@ -20,7 +20,7 @@ StatusCode PixelTDAQCondAlg::initialize() {
   ATH_CHECK(m_condSvc.retrieve());
 
   ATH_CHECK(m_moduleDataKey.initialize());
-  ATH_CHECK(m_readKey.initialize());
+  ATH_CHECK(m_readKey.initialize(!m_readKey.empty()));
   ATH_CHECK(m_writeKey.initialize());
   if (m_condSvc->regHandle(this,m_writeKey).isFailure()) {
     ATH_MSG_FATAL("unable to register WriteCondHandle " << m_writeKey.fullKey() << " with CondSvc");
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py b/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py
index b8383518e87cef0e73272cd2721f58a731edf7d0..5db700face27b228aa6dd1d7e39dac0b20e38272 100644
--- a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py
+++ b/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryConfig.py
@@ -13,7 +13,7 @@ from PixelConditionsAlgorithms.PixelConditionsConfig import (
 def PixelConditionsSummaryCfg(flags, name="PixelConditionsSummary", **kwargs):
     """Return configured ComponentAccumulator with tool for Pixel Conditions"""
     acc = ComponentAccumulator()
-    kwargs.setdefault("UseByteStream", False)
+    kwargs.setdefault("UseByteStream", not flags.Input.isMC)
     acc.merge(PixelDCSCondStateAlgCfg(flags))
     acc.merge(PixelDCSCondStatusAlgCfg(flags))
 # NEW FOR RUN3    acc.merge(PixelDeadMapCondAlgCfg(flags))
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx
index fdf9d215b119d3432531f22f40d880d8b30c18a0..42d722772c59a5ec53e38cab6bc4ae398865bd45 100644
--- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx
@@ -28,7 +28,10 @@ StatusCode PixelConditionsSummaryTool::initialize(){
   ATH_CHECK(m_condDCSStatusKey.initialize());
 
 #ifndef SIMULATIONBASE
-  if (m_useByteStream) { ATH_CHECK(m_BSErrContReadKey.initialize()); }
+  if (!m_useByteStream) {
+    ATH_CHECK(m_BSErrContReadKey.assign(""));
+  }
+  ATH_CHECK(m_BSErrContReadKey.initialize(!m_BSErrContReadKey.empty()));
 #endif
 
   ATH_CHECK(detStore()->retrieve(m_pixelID,"PixelID"));
diff --git a/InnerDetector/InDetConditions/SiLorentzAngleTool/python/PixelLorentzAngleConfig.py b/InnerDetector/InDetConditions/SiLorentzAngleTool/python/PixelLorentzAngleConfig.py
index 3423ea4dd077b8a55db4e220dff67a3df051e193..72852a8ea4a7deb8e8c15ce8b6f49025ef84ef86 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleTool/python/PixelLorentzAngleConfig.py
+++ b/InnerDetector/InDetConditions/SiLorentzAngleTool/python/PixelLorentzAngleConfig.py
@@ -17,6 +17,7 @@ def PixelLorentzAngleToolCfg(flags, name="PixelLorentzAngleTool", **kwargs):
     """Return a SiLorentzAngleTool configured for Pixel"""
     kwargs.setdefault("DetectorName", "Pixel")
     kwargs.setdefault("SiLorentzAngleCondData", "PixelSiLorentzAngleCondData")
+    kwargs.setdefault("DetEleCollKey", "PixelDetectorElementCollection")
     kwargs.setdefault("UseMagFieldSvc", True)
     return SiLorentzAngleTool(name, **kwargs)
 
diff --git a/InnerDetector/InDetConditions/SiLorentzAngleTool/python/SCT_LorentzAngleConfig.py b/InnerDetector/InDetConditions/SiLorentzAngleTool/python/SCT_LorentzAngleConfig.py
index 92dfe76ccf82cf2c5e324f511d9a09862d8f27da..d7d9c57f877fc433a38c9d77adf19039a7f3159e 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleTool/python/SCT_LorentzAngleConfig.py
+++ b/InnerDetector/InDetConditions/SiLorentzAngleTool/python/SCT_LorentzAngleConfig.py
@@ -14,6 +14,7 @@ def SCT_LorentzAngleToolCfg(flags, name="SCT_LorentzAngleTool", **kwargs):
     """Return a SiLorentzAngleTool configured for SCT"""
     kwargs.setdefault("DetectorName", "SCT")
     kwargs.setdefault("SiLorentzAngleCondData", "SCTSiLorentzAngleCondData")
+    kwargs.setdefault("DetEleCollKey", "SCT_DetectorElementCollection")
     kwargs.setdefault("UseMagFieldSvc", True)
     return SiLorentzAngleTool(name, **kwargs)