diff --git a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawDataProvider.h b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawDataProvider.h
index 24711286e298554010d5a38d3bc0a57837c2c7a3..945e9a0e66e666dc81f79ca62874d21892733c61 100644
--- a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawDataProvider.h
+++ b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawDataProvider.h
@@ -10,7 +10,7 @@
 #define BCM_RAWDATABYTESTREAMCNV_BCM_RAWDATAPROVIDER_H
 
 #include "InDetBCM_RawData/BCM_RDO_Container.h"
-#include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
 #include "StoreGate/WriteHandleKey.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
@@ -18,7 +18,7 @@
 class IROBDataProviderSvc;
 class BCM_RawDataProviderTool;
 
-class BCM_RawDataProvider : public AthAlgorithm
+class BCM_RawDataProvider : public AthReentrantAlgorithm
 {
 public:
 
@@ -29,7 +29,7 @@ public:
   virtual StatusCode initialize() override;
 
   //! Execute
-  virtual StatusCode execute() override;
+  virtual StatusCode execute(const EventContext& ctx) const override;
 
   //! Finalize
   virtual StatusCode finalize() override
diff --git a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawDataProvider.cxx b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawDataProvider.cxx
index bd9356a2d1525f55bc099618b380fe83e2d0f6ac..17c6fd63888f6951032b0059800e1c38d2067bb9 100644
--- a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawDataProvider.cxx
+++ b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawDataProvider.cxx
@@ -25,7 +25,7 @@
 // constructor
 ////////////////////////
 BCM_RawDataProvider::BCM_RawDataProvider(const std::string& name, ISvcLocator* pSvcLocator):
-  AthAlgorithm         (name, pSvcLocator),
+  AthReentrantAlgorithm         (name, pSvcLocator),
   m_robDataProvider ("ROBDataProviderSvc",name),
   m_rawDataTool     ("BCM_RawDataProviderTool")
 {
@@ -67,7 +67,7 @@ StatusCode BCM_RawDataProvider::initialize() {
 ////////////////////////
 // execute() -
 ////////////////////////
-StatusCode BCM_RawDataProvider::execute() {
+StatusCode BCM_RawDataProvider::execute(const EventContext& ctx) const {
 
   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Create BCM RDO Container" << endmsg;
   auto container = std::make_unique<BCM_RDO_Container>();
@@ -97,7 +97,7 @@ StatusCode BCM_RawDataProvider::execute() {
   
   //m_robDataProvider->getROBData(ROBIDs_all, listOfRobf_all);
   
-  m_robDataProvider->getROBData(ROBIDs, listOfRobf);
+  m_robDataProvider->getROBData(ctx,ROBIDs, listOfRobf);
   
   // For Run-1 if 4 fragment present select only the PRO BCM 
   /*
@@ -115,7 +115,7 @@ StatusCode BCM_RawDataProvider::execute() {
 
   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Number of collections in container is " << container->size() << endmsg;
 
-  ATH_CHECK( SG::makeHandle (m_RDO_Key).record (std::move (container)) );
+  ATH_CHECK( SG::makeHandle (m_RDO_Key,ctx).record (std::move (container)) );
 
   return StatusCode::SUCCESS;
 }