diff --git a/tree/ntuple/v7/src/RPageSinkBuf.cxx b/tree/ntuple/v7/src/RPageSinkBuf.cxx
index 7aef34840482a4ecc9d1f2a26b89636b716dd389..08351518e7d38caa239e468acd514663537e2c35 100644
--- a/tree/ntuple/v7/src/RPageSinkBuf.cxx
+++ b/tree/ntuple/v7/src/RPageSinkBuf.cxx
@@ -105,8 +105,11 @@ ROOT::Experimental::Detail::RPageSinkBuf::CommitClusterImpl(ROOT::Experimental::
       }
       fInnerSink->CommitSealedPageV(toCommit);
 
-      for (auto &bufColumn : fBufferedColumns)
-         bufColumn.DrainBufferedPages();
+      for (auto &bufColumn : fBufferedColumns) {
+         auto drained = bufColumn.DrainBufferedPages();
+         for (auto &bufPage : std::get<std::deque<RColumnBuf::RPageZipItem>>(drained))
+            ReleasePage(bufPage.fPage);
+      }
       return fInnerSink->CommitCluster(nEntries);
    }