diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx
index 96ee9c56764f4b023e7720a95058e934ee7f7635..ed12f99569cee16ad7c980a1a9083f99fd0ea85c 100644
--- a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx
+++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx
@@ -113,7 +113,9 @@ LArRawChannelContByteStreamCnv::createRepConst(DataObject* pObj, IOpaqueAddress*
 
   const std::string& nm = pObj->registry()->name(); 
 
+  if ( pAddr != nullptr ) pAddr->release();
   pAddr = new  ByteStreamAddress(classID(),nm,""); 
+  pAddr->addRef();
 
   ATH_CHECK( m_tool->WriteLArRawChannels(ChannelContainer,*fea) );
   return StatusCode::SUCCESS;
diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx
index d024586cb58f244711a59118b6983aa1712a651c..1e3709f9715045313ce570f33fe81ab216fc75be 100644
--- a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx
+++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx
@@ -196,8 +196,11 @@ StatusCode TileRawChannelContByteStreamCnv::createRepConst(DataObject* pObj, IOp
   } 
 
   std::string name = pObj->registry()->name(); 
+
+  if ( pAddr != nullptr ) pAddr->release();
   ByteStreamAddress* addr = new ByteStreamAddress(classID(), name, ""); 
   pAddr = addr; 
+  pAddr->addRef();
 
   ATH_CHECK( m_tool->convert(rccont, fea) );