diff --git a/GaudiHive/src/AlgoExecutionTask.cpp b/GaudiHive/src/AlgoExecutionTask.cpp
index 099d408cb9d0225e392f6d7d61cd4e180361dc8a..49e7210e63f5a38a504214db3415ab7bc72022ff 100644
--- a/GaudiHive/src/AlgoExecutionTask.cpp
+++ b/GaudiHive/src/AlgoExecutionTask.cpp
@@ -55,11 +55,6 @@ tbb::task* AlgoExecutionTask::execute()
     eventfailed = true;
   }
 
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-  // Commit all DataHandles
-  this_algo->commitHandles();
-#endif
-
   // DP it is important to propagate the failure of an event.
   // We need to stop execution when this happens so that execute run can
   // then receive the FAILURE
diff --git a/GaudiHive/src/HLTEventLoopMgr.cpp b/GaudiHive/src/HLTEventLoopMgr.cpp
index 621bffc2cdd5b21faed27a963bd01550247362f0..b318dffcd90d5783e596d393d5b03bd959ed224c 100644
--- a/GaudiHive/src/HLTEventLoopMgr.cpp
+++ b/GaudiHive/src/HLTEventLoopMgr.cpp
@@ -548,11 +548,6 @@ tbb::task* HLTEventLoopMgr::HLTExecutionTask::execute()
       eventfailed = true;
     }
 
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-    // Commit all DataHandles
-    this_algo->commitHandles();
-#endif
-
     // DP it is important to propagate the failure of an event.
     // We need to stop execution when this happens so that execute run can
     // then receive the FAILURE
diff --git a/GaudiHive/src/IOBoundAlgTask.cpp b/GaudiHive/src/IOBoundAlgTask.cpp
index 57a0df82cffd34784c0b79af45c51f954d0957a8..7aea3630dafadf298c25c9b98a4620894cd90108 100644
--- a/GaudiHive/src/IOBoundAlgTask.cpp
+++ b/GaudiHive/src/IOBoundAlgTask.cpp
@@ -56,11 +56,6 @@ StatusCode IOBoundAlgTask::execute()
     eventfailed = true;
   }
 
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-  // Commit all DataHandles
-  this_algo->commitHandles();
-#endif
-
   // DP it is important to propagate the failure of an event.
   // We need to stop execution when this happens so that execute run can
   // then receive the FAILURE
diff --git a/GaudiKernel/GaudiKernel/AlgTool.h b/GaudiKernel/GaudiKernel/AlgTool.h
index 5744a9cc6cd45d97ea64d6356d04d76e5e55d898..83825437f73b652586830bd9fb0672f8407e05f9 100644
--- a/GaudiKernel/GaudiKernel/AlgTool.h
+++ b/GaudiKernel/GaudiKernel/AlgTool.h
@@ -209,10 +209,6 @@ public:
 public:
   void acceptDHVisitor( IDataHandleVisitor* ) const override;
 
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-  void commitHandles() override;
-#endif
-
 public:
   void registerTool( IAlgTool* tool ) const
   {
diff --git a/GaudiKernel/GaudiKernel/Algorithm.h b/GaudiKernel/GaudiKernel/Algorithm.h
index cb3bd24d9e8f011263ee928dc9e0169376a5318c..e6cf41f6f620315dc0aaab5f244eb2e8c9e30ebe 100644
--- a/GaudiKernel/GaudiKernel/Algorithm.h
+++ b/GaudiKernel/GaudiKernel/Algorithm.h
@@ -439,10 +439,6 @@ public:
 public:
   void acceptDHVisitor( IDataHandleVisitor* ) const override;
 
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-  void commitHandles() override;
-#endif
-
 public:
   void registerTool( IAlgTool* tool ) const;
   void deregisterTool( IAlgTool* tool ) const;
diff --git a/GaudiKernel/GaudiKernel/DataHandle.h b/GaudiKernel/GaudiKernel/DataHandle.h
index 05f3dd74a8520c691a8e2ad8e8867e826fb7102e..b928027442d82545a8316de3cfa660c13a789e90 100644
--- a/GaudiKernel/GaudiKernel/DataHandle.h
+++ b/GaudiKernel/GaudiKernel/DataHandle.h
@@ -51,14 +51,6 @@ namespace Gaudi
 
     virtual void reset( bool ){};
 
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-    /// This hook, is called after Algorithm::execute() by GaudiHive's algorithm
-    /// execution tasks. It was meant to allow automatically publishing data
-    /// objects to the whiteboard at the end of algorithm execution. However,
-    /// it is not used anymore, and scheduled for removal.
-    virtual StatusCode commit() { return StatusCode::SUCCESS; }
-#endif
-
     virtual std::string pythonRepr() const;
     virtual bool init() { return true; }
 
diff --git a/GaudiKernel/GaudiKernel/IDataHandleHolder.h b/GaudiKernel/GaudiKernel/IDataHandleHolder.h
index 64e02d9fd90f8b9b25120558ec931f34ee649063..5317204a467caaa90ff2a43d0aeb183f3f7ff647 100644
--- a/GaudiKernel/GaudiKernel/IDataHandleHolder.h
+++ b/GaudiKernel/GaudiKernel/IDataHandleHolder.h
@@ -22,10 +22,6 @@ public:
 
   virtual void acceptDHVisitor( IDataHandleVisitor* ) const = 0;
 
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-  virtual void commitHandles() = 0;
-#endif
-
   virtual const DataObjIDColl& inputDataObjs() const  = 0;
   virtual const DataObjIDColl& outputDataObjs() const = 0;
 
diff --git a/GaudiKernel/src/Lib/AlgTool.cpp b/GaudiKernel/src/Lib/AlgTool.cpp
index 19733e88de98e0588c92644ee0773e9e281b0a78..4ee6fc7b131a90d0f72ebdce8998865dec0054a9 100644
--- a/GaudiKernel/src/Lib/AlgTool.cpp
+++ b/GaudiKernel/src/Lib/AlgTool.cpp
@@ -513,19 +513,4 @@ void AlgTool::acceptDHVisitor( IDataHandleVisitor* vis ) const
   vis->visit( this );
 
   for ( auto tool : tools() ) vis->visit( dynamic_cast<AlgTool*>( tool ) );
-}
-
-//-----------------------------------------------------------------------------
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-void AlgTool::commitHandles()
-{
-  //-----------------------------------------------------------------------------
-
-  for ( auto h : outputHandles() ) h->commit();
-
-  for ( auto t : m_tools ) {
-    AlgTool* at = dynamic_cast<AlgTool*>( t );
-    if ( at ) at->commitHandles();
-  }
-}
-#endif
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/GaudiKernel/src/Lib/Algorithm.cpp b/GaudiKernel/src/Lib/Algorithm.cpp
index 087f01a68ea969b10caf9338e3e98124816b4ebc..17c8772c3a700d5519fb771c1d85257fc0c15090 100644
--- a/GaudiKernel/src/Lib/Algorithm.cpp
+++ b/GaudiKernel/src/Lib/Algorithm.cpp
@@ -956,30 +956,6 @@ SmartIF<IService> Algorithm::service( const std::string& name, const bool create
   return helper.service( name, quiet, createIf );
 }
 
-//-----------------------------------------------------------------------------
-#if defined( GAUDI_V30_DATAHANDLE_COMMIT )
-void Algorithm::commitHandles()
-{
-  //-----------------------------------------------------------------------------
-
-  for ( auto h : outputHandles() ) {
-    if ( h->commit().isFailure() ) {
-      throw GaudiException( "Failed to commit output handle [" + h->fullKey().fullKey() + "]", this->name(),
-                            StatusCode::FAILURE );
-    }
-  }
-
-  for ( auto t : m_tools ) {
-    AlgTool* at = dynamic_cast<AlgTool*>( t );
-    if ( at != 0 ) at->commitHandles();
-  }
-
-  for ( auto& a : m_subAlgms ) {
-    a->commitHandles();
-  }
-}
-#endif
-
 void Algorithm::registerTool( IAlgTool* tool ) const
 {
   if ( msgLevel( MSG::DEBUG ) ) {
diff --git a/cmake/GaudiBuildFlags.cmake b/cmake/GaudiBuildFlags.cmake
index b16f0b549b811b6a1f482893ce14339baa3794d9..dbea2807bc6f5af48f9b86947d37533aa49060bd 100644
--- a/cmake/GaudiBuildFlags.cmake
+++ b/cmake/GaudiBuildFlags.cmake
@@ -104,9 +104,6 @@ option(G22_NEW_SVCLOCATOR
 option(GAUDI_V22
        "enable some API extensions"
        OFF)
-option(GAUDI_V30_DATAHANDLE_COMMIT
-       "enable deprecated DataHandle::commit() hook and associated code"
-       OFF)
 
 if (BINARY_TAG_COMP_NAME STREQUAL "gcc" AND BINARY_TAG_COMP_VERSION VERSION_GREATER "5.0")
   option(GAUDI_SUGGEST_OVERRIDE "enable warnings for missing override keyword" ON)