diff --git a/FWCore/FWCore/PodioDataSvc.h b/FWCore/FWCore/PodioDataSvc.h
index 09194a30c404263f1b06f4457eafb02282a1e399..54d9bc830bc3bd228a526a9aca1b7ea871478347 100644
--- a/FWCore/FWCore/PodioDataSvc.h
+++ b/FWCore/FWCore/PodioDataSvc.h
@@ -37,7 +37,7 @@ public:
   using DataSvc::registerObject;
   /// Overriding standard behaviour of evt service
   /// Register object with the data store.
-  virtual StatusCode registerObject(const std::string& fullPath, DataObject* pObject) final;
+  virtual StatusCode registerObject(std::string_view parentPath, std::string_view fullPath, DataObject* pObject) override final;
 
   StatusCode readCollection(const std::string& collectionName, int collectionID);
 
diff --git a/FWCore/src/PodioDataSvc.cpp b/FWCore/src/PodioDataSvc.cpp
index ce7d3699d5b7cd7e09d59be617ab73222803ad6c..c2920e12f90f95a147d03d9480c5ab805881b88d 100644
--- a/FWCore/src/PodioDataSvc.cpp
+++ b/FWCore/src/PodioDataSvc.cpp
@@ -101,10 +101,10 @@ StatusCode PodioDataSvc::readCollection(const std::string& collName, int collect
   collection->setID(id);
   wrapper->setData(collection);
   m_readCollections.emplace_back(std::make_pair(collName, collection));
-  return DataSvc::registerObject(collName, wrapper);
+  return DataSvc::registerObject("/Event", "/" + collName, wrapper);
 }
 
-StatusCode PodioDataSvc::registerObject(const std::string& fullPath, DataObject* pObject) {
+StatusCode PodioDataSvc::registerObject(std::string_view parentPath, std::string_view fullPath, DataObject* pObject) {
   DataWrapperBase* wrapper = dynamic_cast<DataWrapperBase*>(pObject);
   if (wrapper != nullptr) {
     podio::CollectionBase* coll = wrapper->collectionBase();
@@ -116,5 +116,5 @@ StatusCode PodioDataSvc::registerObject(const std::string& fullPath, DataObject*
       m_collections.emplace_back(std::make_pair(shortPath, coll));
     }
   }
-  return DataSvc::registerObject(fullPath, pObject);
+  return DataSvc::registerObject(parentPath, fullPath, pObject);
 }