diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/AthenaPoolConverter.h b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/AthenaPoolConverter.h
index 7b16564fa981e465667c07a751759c0dafc4820c..70e85debb4f91b1026cbcb1e4b4c8bc49ea3cbd2 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/AthenaPoolConverter.h
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/AthenaPoolConverter.h
@@ -69,7 +69,8 @@ public:
 
 protected:
    /// Standard Service Constructor
-   AthenaPoolConverter(const CLID& id, ISvcLocator* pSvcLocator);
+   AthenaPoolConverter(const CLID& id, ISvcLocator* pSvcLocator,
+                       const char* name = nullptr);
 
    /// Write an object into POOL.
    /// @param pObj [IN] pointer to the transient object.
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.h b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.h
index 9db01715f530f59d59ad953407e40911bf86d3ff..89dbcb5435acefef75f592a6be0712cc8d28bdd1 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.h
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.h
@@ -25,7 +25,8 @@ class T_AthenaPoolCnvBase : public AthenaPoolConverter {
 
 protected:
    /// Constructor
-   T_AthenaPoolCnvBase(ISvcLocator* svcloc);
+   T_AthenaPoolCnvBase(ISvcLocator* svcloc,
+                       const char* name = nullptr);
 
    /// Gaudi Service Interface method implementations:
    virtual StatusCode initialize();
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.icc b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.icc
index b2a751d525cf8f56fc5b3ac117d1d4b8dfa5ccac..54317ba9a027df8806bfb142ed42ab52ad315d65 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.icc
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCnvBase.icc
@@ -23,7 +23,9 @@
 
 //__________________________________________________________________________
 template <class T>
-T_AthenaPoolCnvBase<T>::T_AthenaPoolCnvBase(ISvcLocator* svcloc) : AthenaPoolConverter(classID(), svcloc) {
+T_AthenaPoolCnvBase<T>::T_AthenaPoolCnvBase(ISvcLocator* svcloc,
+                                            const char* name /*= nullptr*/)
+  : AthenaPoolConverter(classID(), svcloc, name) {
 }
 //______________________________________________________________________________
 template <class T>
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.h b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.h
index a9fe556da7b7fdf7dc11bc0040993012a9c54cc0..feb3e8c37dcba143b4d0206ba6305a76660c3d7e 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.h
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.h
@@ -36,7 +36,8 @@ class T_AthenaPoolCustCnv : public T_AthenaPoolCnvBase<TRANS> {
 
 protected:
    /// Constructor
-   T_AthenaPoolCustCnv(ISvcLocator* pSvcLocator);
+   T_AthenaPoolCustCnv(ISvcLocator* pSvcLocator,
+                       const char* name = nullptr);
 
    /// Gaudi Service Interface method implementations:
    virtual StatusCode initialize();
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.icc b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.icc
index 58d0e2a53e52623ee8db7562c6def8bda51c7d58..b4527d2096e73abd67de0cb5e29bfa845c5fd991 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.icc
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustCnv.icc
@@ -23,7 +23,9 @@
 
 //__________________________________________________________________________
 template <class TRANS, class PERS>
-T_AthenaPoolCustCnv<TRANS, PERS>::T_AthenaPoolCustCnv(ISvcLocator* pSvcLocator) : T_AthenaPoolCnvBase<TRANS>(pSvcLocator) {
+T_AthenaPoolCustCnv<TRANS, PERS>::T_AthenaPoolCustCnv(ISvcLocator* pSvcLocator,
+                                                      const char* name /*= nullptr*/)
+  : T_AthenaPoolCnvBase<TRANS>(pSvcLocator, name) {
 }
 //______________________________________________________________________________
 template <class TRANS, class PERS>
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h
index 706a632f1b7a9b523cad8dbd96db2d150a8f7f32..b53031926fea5afdb7ab27864269f6a2dbd5396c 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h
@@ -34,7 +34,9 @@ public:
 protected:
    /// Constructor
    /// @param svcloc [IN] Gaudi service locator
-   T_AthenaPoolCustomCnv(ISvcLocator* pSvcLocator);
+   /// @param name [IN] Optional name, for error reporting.
+   T_AthenaPoolCustomCnv(ISvcLocator* pSvcLocator,
+                         const char* name = nullptr);
 
    // the 2 following methods are allowed to throw std::runtime_error
 
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.icc b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.icc
index 472e29d52696bad2ccc80884d5416098f2433988..513df695b3dd8cbf8902424524644a163af7ee29 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.icc
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.icc
@@ -21,7 +21,8 @@
 #include <stdexcept>
 
 template <class TRANS, class PERS>
-T_AthenaPoolCustomCnv<TRANS, PERS>::T_AthenaPoolCustomCnv(ISvcLocator* pSvcLocator) : BaseType(pSvcLocator) {
+T_AthenaPoolCustomCnv<TRANS, PERS>::T_AthenaPoolCustomCnv(ISvcLocator* pSvcLocator,
+                                                          const char* name /*= nullptr*/) : BaseType(pSvcLocator, name) {
 }
 
 template <class TRANS, class PERS>
diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx
index b22edf52c1e11c945cf2b24c5de7aea980fc933d..e68d6bfdfa7e8c52ecc2be929a814a57194f850a 100644
--- a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx
+++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx
@@ -129,9 +129,11 @@ long AthenaPoolConverter::storageType() {
    return(POOL_StorageType);
 }
 //__________________________________________________________________________
-AthenaPoolConverter::AthenaPoolConverter(const CLID& myCLID, ISvcLocator* pSvcLocator) :
+AthenaPoolConverter::AthenaPoolConverter(const CLID& myCLID, ISvcLocator* pSvcLocator,
+                                         const char* name /*= nullptr*/) :
 		::Converter(POOL_StorageType, myCLID, pSvcLocator),
-		::AthMessaging((pSvcLocator != nullptr ? msgSvc() : nullptr), "AthenaPoolConverter"),
+		::AthMessaging((pSvcLocator != nullptr ? msgSvc() : nullptr),
+                               name ? name : "AthenaPoolConverter"),
 	m_athenaPoolCnvSvc("AthenaPoolCnvSvc", "AthenaPoolConverter"),
 	m_placement(nullptr),
 	m_placementHints(),