diff --git a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx
index 8ed1e1fbec1043b84bffed36f14022bfc026c25b..854a730e10b1fb6a1a320201634ef7093e9de027 100644
--- a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx
+++ b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx
@@ -475,13 +475,13 @@ StatusCode AthenaOutputStreamTool::streamObjects(const DataObjectVec& dataObject
             if (dobj->clID() != 1 || addr->par()[0] != "\n") {
                if (dobj->clID() != ClassID_traits<DataHeader>::ID()) {
                   m_dataHeader->insert(proxy, addr);
-                  if (m_store->storeID() != StoreID::EVENT_STORE) proxy->setAddress(addr);
                } else {
                   m_dataHeader->insert(proxy, addr, m_processTag);
                }
-               if (m_store->storeID() == StoreID::EVENT_STORE) {
-                  addr->release();
+               if (proxy->address() == nullptr) {
+                  proxy->setAddress(addr);
                }
+               addr->release();
             }
          } else {
             ATH_MSG_ERROR("Could not fill Object Refs for DataObject (clid/key):" << dobj->clID() << " " << dobj->name());
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc
index 94bce3ad0dd692f0d0f2f81f5c5da87d13efa6b2..0e9f3ab2f3457c6ae76adf5b508e68a2599128fd 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc
@@ -225,6 +225,7 @@ StatusCode T_AthenaPoolCoolMultChanCnv<COLL_T, ELEM_T, ELEM_P>::createRep(DataOb
 								token->toString());
     addr->setAttrListColl(coll);
     delete pAddr; pAddr = addr;
+    pAddr->addRef();
     delete token; token = 0;
 
     ATH_MSG_DEBUG("End createRep");