diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
index 7c4c0f0e89c0dc024db5e5767c1ae97ba3fd75ae..ee15cc6f9cea8841c1a98254115de690a1a193f0 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
@@ -1,19 +1,61 @@
+Tue Mar 30 10:39:50 CDT 2021
+Preloading tcmalloc_minimal.so
+Athena               INFO including file "AthenaCommon/Preparation.py"
+Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
+Athena               INFO including file "AthenaCommon/Execution.py"
+Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_RCondJobOptions.py"
+Py:ConfigurableDb    INFO Read module info for 5121 configurables from 59 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
+Athena               INFO including file "AthenaCommon/runbatch.py"
+ApplicationMgr    SUCCESS 
+====================================================================================================================================
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v35r1)
+                                          running on hepd-0003 on Tue Mar 30 10:39:57 2021
+====================================================================================================================================
 ApplicationMgr       INFO Application Manager Configured successfully
 AthDictLoaderSvc     INFO in initialize...
 AthDictLoaderSvc     INFO acquired Dso-registry
+ClassIDSvc           INFO  getRegistryEntries: read 3200 CLIDRegistry entries for module ALL
+AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 861 CLIDRegistry entries for module ALL
+ReadCond            DEBUG Property update for OutputLevel : new value = 2
 ReadCond             INFO in initialize()
+ReadCond            DEBUG input handles: 0
+ReadCond            DEBUG output handles: 0
+ReadCond            DEBUG Data Deps for ReadCond
+ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
+MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
+MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
+PoolSvc             DEBUG Property update for OutputLevel : new value = 2
+PoolSvc             DEBUG Service base class initialized successfully
+PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
+PoolSvc              INFO Frontier compression level set to 5
+DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://frontier-atlas.lcg.triumf.ca:3128/ATLAS_frontier)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data
+DBReplicaSvc         INFO Read replica configuration from /home/gemmeren/workarea/build/x86_64-centos7-gcc8-opt/share/dbreplica.config
+DBReplicaSvc         INFO Total of 1 servers found for host hepd-0003.lcrc.anl.gov [ATLF ]
+PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 2
+PoolSvc              INFO Setting up APR FileCatalog and Streams
 PoolSvc             DEBUG POOL ReadCatalog is file:Catalog0.xml
 PoolSvc             DEBUG POOL ReadCatalog is file:Catalog1.xml
+PoolSvc              INFO POOL WriteCatalog is file:Catalog2.xml
+DbSession            INFO     Open     DbSession    
+Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
+MetaDataSvc          INFO Found MetaDataTools = PublicToolHandleArray(['IOVDbMetaDataTool'])
+EventSelector       DEBUG Property update for OutputLevel : new value = 2
 EventSelector       DEBUG Initializing EventSelector
+EventSelector       DEBUG Service base class initialized successfully
 EventSelector       DEBUG reinitialization...
 EventSelector        INFO EventSelection with query 
 EventSelector       DEBUG Try item: "SimplePoolFile1.root" from the collection list.
 PoolSvc             DEBUG createCollection() type=RootCollection, connection=PFN:SimplePoolFile1.root, name=SimplePoolFile1.root, contextID=0
 MetaDataSvc         DEBUG handle() FirstInputFile for FID:????
 MetaDataSvc         DEBUG initInputMetaDataStore: file name FID:????
+Domain[ROOT_All]     INFO ->  Access   DbDatabase   READ      [ROOT_All] ????
+Domain[ROOT_All]     INFO                           SimplePoolFile1.root
 SimplePoolFile1...  DEBUG --> Access   DbContainer  READ      [ROOT_All] ##Shapes
 ##Shapes            DEBUG Opening
 ##Shapes            DEBUG    attributes# = 1
@@ -112,18 +154,33 @@ MetaDataHdr(Dat...  DEBUG Opening
 MetaDataHdr(Dat...  DEBUG    attributes# = 1
 MetaDataHdr(Dat...  DEBUG Branch container 'DataHeader'
 MetaDataHdr(Dat...  DEBUG Opened container MetaDataHdr(DataHeader) of type ROOT_Tree
+ClassIDSvc           INFO  getRegistryEntries: read 1710 CLIDRegistry entries for module ALL
+EventPersistenc...   INFO Added successfully Conversion service:AthenaPoolCnvSvc
 SimplePoolFile1...  DEBUG --> Access   DbContainer  READ      [ROOT_Tree] MetaDataHdrForm(DataHeaderForm)
 MetaDataHdrForm...  DEBUG Opening
 MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
+ClassIDSvc           INFO  getRegistryEntries: read 2 CLIDRegistry entries for module ALL
+OutputStreamSeq...   INFO Initializing OutputStreamSequencerSvc - package version AthenaServices-00-00-00
 MetaDataSvc         DEBUG Registering all Tools in ToolHandleArray MetaDataTools
 MetaDataSvc         DEBUG Adding public ToolHandle tool ToolSvc.IOVDbMetaDataTool (IOVDbMetaDataTool)
+MetaDataSvc          INFO   AlgTool: ToolSvc.IOVDbMetaDataTool
+AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
+CondProxyProvider   DEBUG Property update for OutputLevel : new value = 2
+CondProxyProvider    INFO Initializing CondProxyProvider - package version EventSelectorAthenaPool-00-00-00
+CondProxyProvider   DEBUG Service base class initialized successfully
 CondProxyProvider    INFO Inputs: SimplePoolFile4.root
 CondProxyProvider   DEBUG Try item: "SimplePoolFile4.root" from the collection list.
-PoolSvc             DEBUG createCollection() type=RootCollection, connection=PFN:SimplePoolFile4.root, name=SimplePoolFile4.root, contextID=0
-PoolSvc             DEBUG createCollection() type=ImplicitCollection, connection=PFN:SimplePoolFile4.root, name=POOLContainer(DataHeader), contextID=0
+PoolSvc             DEBUG createCollection() type=RootCollection, connection=PFN:SimplePoolFile4.root, name=SimplePoolFile4.root, contextID=2
+PoolSvc             DEBUG createCollection() type=ImplicitCollection, connection=PFN:SimplePoolFile4.root, name=POOLContainer(DataHeader), contextID=2
+PersistencySvc:...  DEBUG lookupPFN: SimplePoolFile4.root returned FID: '????' tech=ROOT_All
+DbSession            INFO     Open     DbSession    
+Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
+Domain[ROOT_All]     INFO ->  Access   DbDatabase   READ      [ROOT_All] ????
+Domain[ROOT_All]     INFO                           SimplePoolFile4.root
 SimplePoolFile4...  DEBUG --> Access   DbContainer  READ      [ROOT_All] ##Shapes
 ##Shapes            DEBUG Opening
 ##Shapes            DEBUG    attributes# = 1
@@ -157,6 +214,9 @@ SimplePoolFile4...  DEBUG --->Reading Param:PFN=[SimplePoolFile4.root]
 SimplePoolFile4...  DEBUG --->Reading Param:POOL_VSN=[1.1]
 SimplePoolFile4...  DEBUG --->Reading Param:FORMAT_VSN=[1.1]
 ##Params            DEBUG No objects passing selection criteria... Container has 4 Entries in total.
+ReadData            DEBUG input handles: 2
+ReadData            DEBUG output handles: 0
+ReadData            DEBUG Data Deps for ReadData
   + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
   + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
@@ -190,6 +250,7 @@ POOLContainerFo...  DEBUG Opened container POOLContainerForm(DataHeaderForm) of
 AthenaPoolAddre...  DEBUG The current Event contains: 3 objects
 AthenaPoolAddre...  DEBUG loadAddresses: DataObject address, clid = 2101, name = McEventInfo
 AthenaPoolAddre...  DEBUG loadAddresses: DataObject address, clid = 9102, name = MyHits
+AlgResourcePool      INFO TopAlg list empty. Recovering the one of Application Manager
 AthenaEventLoopMgr   INFO   ===>>>  start of run 1    <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #0, run #1 0 events processed so far  <<<===
 ReadCond            DEBUG in execute()
@@ -199,8 +260,15 @@ POOLContainer(D...  DEBUG Opening
 POOLContainer(D...  DEBUG    attributes# = 1
 POOLContainer(D...  DEBUG Branch container 'DataHeader'
 POOLContainer(D...  DEBUG Opened container POOLContainer(DataHeader) of type ROOT_Tree
-StorageSvc          DEBUG Disconnect request for database: FID=???? PFN=SimplePoolFile4.root
-StorageSvc          DEBUG Closing database: FID=????
+SimplePoolFile4...  DEBUG --> Access   DbContainer  READ      [ROOT_Tree] POOLContainerForm(DataHeaderForm)
+POOLContainerFo...  DEBUG Opening
+POOLContainerFo...  DEBUG    attributes# = 1
+POOLContainerFo...  DEBUG Branch container 'DataHeaderForm'
+POOLContainerFo...  DEBUG Opened container POOLContainerForm(DataHeaderForm) of type ROOT_Tree
+CondProxyProvider   DEBUG The current File contains: 2 objects
+CondProxyProvider   DEBUG preLoadAddresses: DataObject address, clid = 9102, name = PedestalWriteData
+Domain[ROOT_All]     INFO ->  Access   DbDatabase   READ      [ROOT_All] ????
+Domain[ROOT_All]     INFO                           SimplePoolFile4.root
 SimplePoolFile4...  DEBUG --> Access   DbContainer  READ      [ROOT_All] ##Shapes
 ##Shapes            DEBUG Opening
 ##Shapes            DEBUG    attributes# = 1
@@ -234,18 +302,6 @@ SimplePoolFile4...  DEBUG --->Reading Param:PFN=[SimplePoolFile4.root]
 SimplePoolFile4...  DEBUG --->Reading Param:POOL_VSN=[1.1]
 SimplePoolFile4...  DEBUG --->Reading Param:FORMAT_VSN=[1.1]
 ##Params            DEBUG No objects passing selection criteria... Container has 4 Entries in total.
-SimplePoolFile4...  DEBUG --> Access   DbContainer  READ      [ROOT_Tree] POOLContainer(DataHeader)
-POOLContainer(D...  DEBUG Opening
-POOLContainer(D...  DEBUG    attributes# = 1
-POOLContainer(D...  DEBUG Branch container 'DataHeader'
-POOLContainer(D...  DEBUG Opened container POOLContainer(DataHeader) of type ROOT_Tree
-SimplePoolFile4...  DEBUG --> Access   DbContainer  READ      [ROOT_Tree] POOLContainerForm(DataHeaderForm)
-POOLContainerFo...  DEBUG Opening
-POOLContainerFo...  DEBUG    attributes# = 1
-POOLContainerFo...  DEBUG Branch container 'DataHeaderForm'
-POOLContainerFo...  DEBUG Opened container POOLContainerForm(DataHeaderForm) of type ROOT_Tree
-CondProxyProvider   DEBUG The current File contains: 2 objects
-CondProxyProvider   DEBUG preLoadAddresses: DataObject address, clid = 9102, name = PedestalWriteData
 SimplePoolFile4...  DEBUG --> Access   DbContainer  READ      [ROOT_Tree] ConditionsContainerExampleHitContainer_p1(PedestalWriteData)
 ConditionsConta...  DEBUG Opening
 ConditionsConta...  DEBUG    attributes# = 1
@@ -288,6 +344,7 @@ EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 12
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000203][OID=00000005-00000001].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000203][OID=00000005-00000001].
+ClassIDSvc           INFO  getRegistryEntries: read 21 CLIDRegistry entries for module ALL
 EventSelector       DEBUG found AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000203][OID=00000005-00000001]
 AthenaPoolAddre...  DEBUG The current Event contains: 3 objects
 AthenaPoolAddre...  DEBUG loadAddresses: DataObject address, clid = 2101, name = McEventInfo
@@ -913,25 +970,37 @@ ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = Du
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 20 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
 MetaDataSvc         DEBUG retireMetadataSource: FID:????
+EventSelector        INFO Disconnecting input sourceID: ????
 StorageSvc          DEBUG Disconnect request for database: FID=???? PFN=SimplePoolFile1.root
 StorageSvc          DEBUG Closing database: FID=????
+Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 AthenaEventLoopMgr   INFO No more events in event selection 
 MetaDataSvc         DEBUG MetaDataSvc::stop()
 PoolSvc             DEBUG Disconnect request for contextId=0
 StorageSvc          DEBUG Disconnect request for database: FID=???? PFN=SimplePoolFile4.root
 StorageSvc          DEBUG Closing database: FID=????
+Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
+Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 PoolSvc             DEBUG Disconnected PersistencySvc session
 PoolSvc             DEBUG Disconnect request for contextId=1
 PoolSvc             DEBUG Disconnect request for contextId=2
+StorageSvc          DEBUG Disconnect request for database: FID=???? PFN=SimplePoolFile4.root
+StorageSvc          DEBUG Closing database: FID=????
+Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
+Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 PoolSvc             DEBUG Disconnected PersistencySvc session
 ApplicationMgr       INFO Application Manager Stopped successfully
 ReadCond             INFO in finalize()
 ReadData             INFO in finalize()
+ReadData            DEBUG Calling destructor
 AthDictLoaderSvc     INFO in finalize...
 ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
+cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=       0(+-       0)/       0/       0 [us] #= 49
+cObj_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=   0.222(+-    1.47)/       0/      10 [ms] #= 45
+ChronoStatSvc        INFO Time User   : Tot=  170 [ms]  #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.cxx b/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.cxx
index 3012b83caf359001f048b50715e73aba18d8221c..9f68c3f9d0b71a41bc89d8b52383826e9ea1fc46 100755
--- a/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.cxx
+++ b/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.cxx
@@ -31,7 +31,8 @@
 CondProxyProvider::CondProxyProvider(const std::string& name, ISvcLocator* pSvcLocator) :
 	::AthService(name, pSvcLocator),
 	m_athenaPoolCnvSvc("AthenaPoolCnvSvc", name),
-	m_poolCollectionConverter(0)
+	m_poolCollectionConverter(0),
+	m_contextId(IPoolSvc::kInputStream)
 	{
 }
 //________________________________________________________________________________
@@ -55,8 +56,8 @@ StatusCode CondProxyProvider::initialize() {
    }
    // Get PoolSvc and connect as "Conditions"
    IPoolSvc *poolSvc = m_athenaPoolCnvSvc->getPoolSvc();
-   StatusCode status = poolSvc->connect( pool::ITransaction::READ,
-                                         poolSvc->getInputContext("Conditions") );
+   m_contextId = poolSvc->getInputContext("Conditions");
+   StatusCode status = poolSvc->connect( pool::ITransaction::READ, m_contextId );
    if (!status.isSuccess()) {
       ATH_MSG_FATAL("Cannot connect to Database.");
       return(StatusCode::FAILURE);
@@ -131,7 +132,7 @@ StatusCode CondProxyProvider::preLoadAddresses(StoreID::type storeID,
       SG::VersionedKey myVersKey(name(), verNumber);
       Token* token = new Token;
       token->fromString(headerIterator->eventRef().toString());
-      TokenAddress* tokenAddr = new TokenAddress(POOL_StorageType, ClassID_traits<DataHeader>::ID(), "", myVersKey, IPoolSvc::kInputStream, token);
+      TokenAddress* tokenAddr = new TokenAddress(POOL_StorageType, ClassID_traits<DataHeader>::ID(), "", myVersKey, m_contextId, token);
       if (!detectorStoreSvc->recordAddress(tokenAddr).isSuccess()) {
          ATH_MSG_ERROR("Cannot record DataHeader.");
          return(StatusCode::FAILURE);
@@ -178,6 +179,7 @@ PoolCollectionConverter* CondProxyProvider::getCollectionCnv() {
    ATH_MSG_DEBUG("Try item: \"" << *m_inputCollectionsIterator << "\" from the collection list.");
    PoolCollectionConverter* pCollCnv = new PoolCollectionConverter("ImplicitROOT",
 	   *m_inputCollectionsIterator,
+	   m_contextId,
 	   "",
 	   m_athenaPoolCnvSvc->getPoolSvc());
    if (!pCollCnv->initialize().isSuccess()) {
diff --git a/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.h b/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.h
index 0f39299504fcb58f037c0d58ff683ed98c221608..1f8d61cac6e8bfa501a255e30020675241014322 100755
--- a/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.h
+++ b/Database/AthenaPOOL/EventSelectorAthenaPool/src/CondProxyProvider.h
@@ -59,6 +59,7 @@ private: // data
    ServiceHandle<IAthenaPoolCnvSvc> m_athenaPoolCnvSvc;
 
    mutable PoolCollectionConverter* m_poolCollectionConverter ATLAS_THREAD_SAFE;
+   unsigned int m_contextId;
 
 private: // properties
    /// InputCollections, vector with names of the input collections.
diff --git a/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx b/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx
index 1496c4d919f41c3ccc1cd826b16cd6d049f2b96b..feb31182bab8d7783ec58299f09bb2511e3997bc 100644
--- a/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx
+++ b/Database/AthenaPOOL/EventSelectorAthenaPool/src/EventSelectorAthenaPool.cxx
@@ -780,6 +780,7 @@ StatusCode EventSelectorAthenaPool::seek(Context& /*ctxt*/, int evtNum) const {
          m_inputCollectionsIterator += m_curCollection;
          m_poolCollectionConverter = new PoolCollectionConverter(m_collectionType.value() + ":" + m_collectionTree.value(),
 	         m_inputCollectionsProp.value()[m_curCollection],
+	         IPoolSvc::kInputStream,
 	         m_query.value(),
 	         m_athenaPoolCnvSvc->getPoolSvc());
          if (!m_poolCollectionConverter->initialize().isSuccess()) {
@@ -827,6 +828,7 @@ int EventSelectorAthenaPool::findEvent(int evtNum) const {
       if (m_numEvt[i] == -1) {
          PoolCollectionConverter pcc(m_collectionType.value() + ":" + m_collectionTree.value(),
 	         m_inputCollectionsProp.value()[i],
+	         IPoolSvc::kInputStream,
 	         m_query.value(),
 	         m_athenaPoolCnvSvc->getPoolSvc());
          if (!pcc.initialize().isSuccess()) {
@@ -981,6 +983,7 @@ PoolCollectionConverter* EventSelectorAthenaPool::getCollectionCnv(bool throwInc
       ATH_MSG_DEBUG("Try item: \"" << *m_inputCollectionsIterator << "\" from the collection list.");
       PoolCollectionConverter* pCollCnv = new PoolCollectionConverter(m_collectionType.value() + ":" + m_collectionTree.value(),
 	      *m_inputCollectionsIterator,
+	      IPoolSvc::kInputStream,
 	      m_query.value(),
 	      m_athenaPoolCnvSvc->getPoolSvc());
       StatusCode status = pCollCnv->initialize();
diff --git a/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.cxx b/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.cxx
index 9ee099c22f4cd6a3fc4f7d4361d2f46f36e3e8ff..8ca01de0d3bf463a974d7bb51976833e53cf7e5e 100755
--- a/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.cxx
+++ b/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.cxx
@@ -30,11 +30,13 @@
 //______________________________________________________________________________
 PoolCollectionConverter::PoolCollectionConverter(const std::string& collectionType,
 	const std::string& inputCollection,
+	unsigned int contextId,
 	const std::string& query,
 	const IPoolSvc* svc) :
 	m_collectionType(),
 	m_connection(),
 	m_inputCollection(inputCollection),
+	m_contextId(contextId),
 	m_query(query),
 	m_poolSvc(svc),
 	m_poolCollection(nullptr),
@@ -85,7 +87,7 @@ StatusCode PoolCollectionConverter::initialize() {
          m_connection = "PFN:" + m_inputCollection;
       }
       try {
-         m_poolCollection = m_poolSvc->createCollection("RootCollection", m_connection, m_inputCollection);
+         m_poolCollection = m_poolSvc->createCollection("RootCollection", m_connection, m_inputCollection, m_contextId);
       } catch (std::exception &e) {
          m_poolCollection = nullptr;
       }
@@ -96,11 +98,11 @@ StatusCode PoolCollectionConverter::initialize() {
    }
    try {
       if (m_poolCollection == nullptr) {
-         m_poolCollection = m_poolSvc->createCollection(collectionTypeString, m_connection, m_inputCollection);
+         m_poolCollection = m_poolSvc->createCollection(collectionTypeString, m_connection, m_inputCollection, m_contextId);
       }
       if (m_poolCollection == nullptr && collectionTypeString == "ImplicitCollection") {
          m_inputCollection = m_inputContainer + "_DataHeader";
-         m_poolCollection = m_poolSvc->createCollection(collectionTypeString, m_connection, m_inputCollection);
+         m_poolCollection = m_poolSvc->createCollection(collectionTypeString, m_connection, m_inputCollection, m_contextId);
       }
    } catch (std::exception &e) {
       return(StatusCode::RECOVERABLE);
diff --git a/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.h b/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.h
index a606c321401a7a819b389bc85ddfdd5900b6cd0a..b69c18e50b99a0a60e9b6d7336a47f335c3a2873 100755
--- a/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.h
+++ b/Database/AthenaPOOL/EventSelectorAthenaPool/src/PoolCollectionConverter.h
@@ -18,7 +18,6 @@ namespace pool {
    class ICollection;
    class ICollectionQuery;
    class ICollectionCursor;
-   class ICollectionMetadata;
 }
 class StatusCode;
 
@@ -37,6 +36,7 @@ public:
    /// @param contextId [IN] id for PoolSvc persistency service to use for input.
    PoolCollectionConverter(const std::string& collectionType,
 		   const std::string& inputCollection,
+		   unsigned int contextId,
 		   const std::string& query,
 		   const IPoolSvc* svc);
 
@@ -67,6 +67,7 @@ private: // data
    std::string m_collectionType;
    std::string m_connection;
    std::string m_inputCollection;
+   unsigned int m_contextId;
    std::string m_query;
    const IPoolSvc* m_poolSvc;
    pool::ICollection* m_poolCollection;
diff --git a/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h b/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h
index 037518d3a7e3ef1ddaa88bde47215e4fd309776d..5bd4251074ffd6fc33b0cbe01ca974daa8bcf672 100644
--- a/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h
+++ b/Database/AthenaPOOL/PoolSvc/PoolSvc/IPoolSvc.h
@@ -95,13 +95,11 @@ public: // Non-static members
    /// @param collectionType [IN] string containing the collection type.
    /// @param connection [IN] string containing the connection.
    /// @param collectionName [IN] string containing the persistent name of the collection.
-   /// @param openMode [IN] ICollection open mode of the collection.
    /// @param contextId [IN] id for PoolSvc persistency service to use for input.
    virtual pool::ICollection* createCollection ATLAS_NOT_THREAD_SAFE
           (const std::string& collectionType,
 	   const std::string& connection,
 	   const std::string& collectionName,
-	   const pool::ICollection::OpenMode& openMode = pool::ICollection::READ,
 	   unsigned int contextId = IPoolSvc::kInputStream) const = 0;
 
    /// @return a token for a container entry.
diff --git a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx
index 2bc26371bbd867e9ecf4f2dd370669b4b3d09909..ec216016684bfd51156542e1993fd16d6d489728 100644
--- a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx
+++ b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx
@@ -439,7 +439,6 @@ pool::ICollection* PoolSvc::createCollection ATLAS_NOT_THREAD_SAFE
                (const std::string& collectionType,
 		const std::string& connection,
 		const std::string& collectionName,
-		const pool::ICollection::OpenMode& openMode,
 		unsigned int contextId) const {
    ATH_MSG_DEBUG("createCollection() type="<< collectionType << ", connection=" << connection
                  << ", name=" << collectionName << ", contextID=" << contextId);
@@ -451,14 +450,9 @@ pool::ICollection* PoolSvc::createCollection ATLAS_NOT_THREAD_SAFE
 	 collection = "PFN:" + collectionName;
       }
    }
-   if (openMode == pool::ICollection::READ) {
-      if (contextId >= m_persistencySvcVec.size()) {
-         ATH_MSG_WARNING("createCollection: Using default input Stream instead of id = " << contextId);
-         contextId = IPoolSvc::kInputStream;
-      }
-   }
    if (contextId >= m_persistencySvcVec.size()) {
-      return(nullptr);
+      ATH_MSG_WARNING("createCollection: Using default input Stream instead of id = " << contextId);
+      contextId = IPoolSvc::kInputStream;
    }
    std::lock_guard<CallMutex> lock(*m_pers_mut[contextId]);
    // Check POOL FileCatalog entry.
@@ -511,10 +505,10 @@ pool::ICollection* PoolSvc::createCollection ATLAS_NOT_THREAD_SAFE
    if (collectionType == "RootCollection" &&
 	   m_persistencySvcVec[contextId]->session().defaultConnectionPolicy().writeModeForNonExisting() != pool::DatabaseConnectionPolicy::RAISE_ERROR) {
       ATH_MSG_INFO("Writing ExplicitROOT Collection - do not pass session pointer");
-      collPtr = collFac->create(collDes, openMode);
+      collPtr = collFac->create(collDes,  pool::ICollection::READ);
    } else {
       try {
-         collPtr = collFac->create(collDes, openMode, &m_persistencySvcVec[contextId]->session());
+         collPtr = collFac->create(collDes, pool::ICollection::READ, &m_persistencySvcVec[contextId]->session());
       } catch (std::exception &e) {
          if (insertFile) {
             std::unique_ptr<pool::IDatabase> dbH = getDbHandle(contextId, connection);
@@ -531,7 +525,7 @@ pool::ICollection* PoolSvc::createCollection ATLAS_NOT_THREAD_SAFE
       std::unique_ptr<pool::IDatabase> dbH = getDbHandle(contextId, connection);
       if (dbH == nullptr) {
          ATH_MSG_INFO("Failed to create FileCatalog entry.");
-      } else if (openMode == pool::ICollection::READ && dbH->fid().empty()) {
+      } else if (dbH->fid().empty()) {
          ATH_MSG_INFO("Cannot retrieve the FID of an existing POOL database: '"
                       << connection << "' - FileCatalog will NOT be updated.");
       } else {
diff --git a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h
index db883011c212c1c5df50103491df79a3500373f2..2c77b047d5bf0e458942234c39160692c8cfc650 100644
--- a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h
+++ b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h
@@ -100,13 +100,11 @@ public: // Non-static members
    /// @param collectionType [IN] string containing the collection type.
    /// @param connection [IN] string containing the connection.
    /// @param collectionName [IN] string containing the persistent name of the collection.
-   /// @param openMode [IN] ICollection open mode of the collection.
    /// @param contextId [IN] id for PoolSvc persistency service to use for input.
    pool::ICollection* createCollection ATLAS_NOT_THREAD_SAFE
           (const std::string& collectionType,
 	   const std::string& connection,
 	   const std::string& collectionName,
-	   const pool::ICollection::OpenMode& openMode = pool::ICollection::READ,
 	   unsigned int contextId = IPoolSvc::kInputStream) const;
 
    /// @return a token for a container entry.