diff --git a/InnerDetector/InDetRecTools/InDetTrackHoleSearch/InDetTrackHoleSearch/InDetTrackHoleSearchTool.h b/InnerDetector/InDetRecTools/InDetTrackHoleSearch/InDetTrackHoleSearch/InDetTrackHoleSearchTool.h
index 71f3e1dc30f63aa9a283cfdc76861319137488f6..55a64afdd82f55d5166e68543fd0bff9a1af06d7 100644
--- a/InnerDetector/InDetRecTools/InDetTrackHoleSearch/InDetTrackHoleSearch/InDetTrackHoleSearchTool.h
+++ b/InnerDetector/InDetRecTools/InDetTrackHoleSearch/InDetTrackHoleSearch/InDetTrackHoleSearchTool.h
@@ -24,6 +24,7 @@ class Identifier;
 class AtlasID;
 class IInDetConditionsSvc;
 class ISCT_ConfigurationConditionsSvc;
+class ISCT_ByteStreamErrorsSvc;
 namespace InDet {class IInDetTestPixelLayerTool; }
 class IGeoModelSvc;
 
@@ -118,6 +119,9 @@ namespace InDet
       ToolHandle< IInDetTestPixelLayerTool >  m_pixelLayerTool;
       ServiceHandle <ISCT_ConfigurationConditionsSvc> m_sctConfCondSvc;
 
+      /** Handle to ISCT_ByteStreamErrorsSvc*/
+      ServiceHandle <ISCT_ByteStreamErrorsSvc> m_sctBsErrSvc;
+
       /** Handle for IGeoModelSvc to retrieve geo model information */
       ServiceHandle<IGeoModelSvc> m_geoModelSvc;
 
diff --git a/InnerDetector/InDetRecTools/InDetTrackHoleSearch/src/InDetTrackHoleSearchTool.cxx b/InnerDetector/InDetRecTools/InDetTrackHoleSearch/src/InDetTrackHoleSearchTool.cxx
index 878c57f224b3bcb5d6117137994c7600f751107b..2faa4b96915af575beb957ae715073ac4084cf7b 100644
--- a/InnerDetector/InDetRecTools/InDetTrackHoleSearch/src/InDetTrackHoleSearchTool.cxx
+++ b/InnerDetector/InDetRecTools/InDetTrackHoleSearch/src/InDetTrackHoleSearchTool.cxx
@@ -25,6 +25,7 @@
 #include "AtlasDetDescr/AtlasDetectorID.h"
 #include "InDetConditionsSummaryService/IInDetConditionsSvc.h"
 #include "SCT_ConditionsServices/ISCT_ConfigurationConditionsSvc.h"
+#include "SCT_ConditionsServices/ISCT_ByteStreamErrorsSvc.h"
 #include "InDetReadoutGeometry/SiDetectorElement.h"
 #include "InDetRecToolInterfaces/IInDetTestPixelLayerTool.h"
 #include "TrkVolumes/Volume.h"
@@ -42,6 +43,7 @@ InDet::InDetTrackHoleSearchTool::InDetTrackHoleSearchTool(const std::string& t,
   m_sctCondSummarySvc  ("SCT_ConditionsSummarySvc",n),
   m_pixelLayerTool("InDet::InDetTestPixelLayerTool"),
   m_sctConfCondSvc("SCT_ConfigurationConditionsSvc", n),
+  m_sctBsErrSvc("SCT_ByteStreamErrorsSvc", n),
   m_geoModelSvc("GeoModelSvc", n),
   m_sct_id(nullptr),
   m_extendedListOfHoles(false),
@@ -56,6 +58,7 @@ InDet::InDetTrackHoleSearchTool::InDetTrackHoleSearchTool(const std::string& t,
   declareProperty("PixelSummarySvc"      , m_pixelCondSummarySvc);
   declareProperty("SctSummarySvc"        , m_sctCondSummarySvc);
   declareProperty("SctConfCondSvc"       , m_sctConfCondSvc);
+  declareProperty("SctBsErrSvc"          , m_sctBsErrSvc);
   declareProperty("PixelLayerTool"       , m_pixelLayerTool);
   declareProperty("GeoModelService"      , m_geoModelSvc);
   declareProperty("ExtendedListOfHoles"  , m_extendedListOfHoles = false);
@@ -127,6 +130,14 @@ StatusCode InDet::InDetTrackHoleSearchTool::initialize()
     } else {
       msg(MSG::INFO) << "Retrieved service " << m_sctConfCondSvc << endmsg;
     }
+    // Get SCT_ByteStreamErrorsSvc
+    if ( m_sctBsErrSvc.retrieve().isFailure() ) {
+      msg(MSG::FATAL) << "Failed to retrieve service " << m_sctBsErrSvc << endmsg;
+      return StatusCode::FAILURE;
+    } else {
+      msg(MSG::INFO) << "Retrieved service " << m_sctBsErrSvc << endmsg;
+    }
+    // Get SCT_ID helper
     if( detStore()->retrieve(m_sct_id, "SCT_ID").isFailure() ) {
       msg(MSG::FATAL) << "Cannot retrieve SCT ID helper!"  << endmsg;
       return StatusCode::FAILURE;
@@ -1071,12 +1082,19 @@ bool InDet::InDetTrackHoleSearchTool::isBadSCTChip(const Identifier& waferId,
   // badChips word for the module from SCT_ConfigurationConditionsSvc
   // tempMaskedChips word for the module from SCT_ByteStreamErrorSvc should also be added.
   // https://its.cern.ch/jira/browse/ATLASRECTS-4011
-  const unsigned int badChips(m_sctConfCondSvc->badChips(moduleId));
+  unsigned int badChips(m_sctConfCondSvc->badChips(moduleId));
   // badChips holds 12 bits. 
   // bit 0 (LSB) is chip 0 for side 0.
   // bit 5 is chip 5 for side 0.
   // bit 6 is chip 6 for side 1.
   // bit 11 is chip 11 for side 1.
+  // Temporarily masked chip information from SCT_ByteStreamErrorsSvc
+  const unsigned int tempMaskedChips(m_sctBsErrSvc->tempMaskedChips(moduleId));
+  // Information of chips with ABCD errors from SCT_ByteStreamErrorsSvc
+  const unsigned int abcdErrorChips(m_sctBsErrSvc->abcdErrorChips(moduleId));
+  // Take 'OR' of badChips, tempMaskedChips and abcdErrorChips
+  badChips |= tempMaskedChips;
+  badChips |= abcdErrorChips;
 
   // If there is no bad chip, this check is done.
   if(badChips==0) return false;