diff --git a/CHANGELOG.md b/CHANGELOG.md
index 14a82aee5823467c2bab1b5bbda62e3641cd759e..0794f90a465c578cb7ddf149f4b3cbac34f71ce2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@ Project Coordinators: Marco Clemencic @clemenci, Charles Leggett @leggett
 
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
 
+
 ## [v39r0](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v39r0) - 2024-09-23
 This major release of Gaudi features a number of backward incompatible changes that have been waiting
 for a chance of being integrated, like
@@ -94,6 +95,14 @@ A special thanks to all the people that contributed to this release:
 - cppcheck fixes (code quality) (gaudi/Gaudi!1609)
 
 
+## [v38r3p1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r3p1) - 2024-10-22
+This release is integrating the changes from [v38r1p1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r1p1)
+into v38r3.
+
+### Added
+- Add `NTupleSvc.BasketSize` property and forward in RCWNTupleCnv Branch creation (gaudi/Gaudi!1648)
+
+
 ## [v38r3](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r3) - 2024-06-28
 This is a minor release to collect all pending backward compatible changes and fixes
 before integrating the backward incompatible changes scheduled for v39r0.
@@ -145,6 +154,14 @@ It will require some structure and polishing, but it's a start.
 - Avoid implicit conversion from float to double (gaudi/Gaudi#299, gaudi/Gaudi!1569)
 
 
+## [v38r1p1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r1p1) - 2024-10-18
+This patch release is needed by LHCb to pick up a small extension to `NTupleSvc`
+so that we can fine tune the basket size of the `TTree`s we produce.
+
+### Added
+- Add `NTupleSvc.BasketSize` property and forward in RCWNTupleCnv Branch creation (gaudi/Gaudi!1648)
+
+
 ## [v38r1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r1) - 2024-03-15
 This backward compatible release of Gaudi features a few fixes and improvements, and a
 major step towards some proper polishing an refreshing of the examples.
diff --git a/GaudiSvc/src/NTupleSvc/NTupleSvc.h b/GaudiSvc/src/NTupleSvc/NTupleSvc.h
index a4fe13b61220cfe4770c0c32efa71eaf28eb6373..c9f8cd1c9ae1b1f987ed2dd96324c933323c9017 100644
--- a/GaudiSvc/src/NTupleSvc/NTupleSvc.h
+++ b/GaudiSvc/src/NTupleSvc/NTupleSvc.h
@@ -98,6 +98,7 @@ public:
 
   /// Check if a datasource is connected
   bool isConnected( const std::string& identifier ) const override;
+
   /// Add file to list I/O list
   StatusCode connect( const std::string& ident ) override;
   /// Add file to list I/O list
@@ -124,6 +125,7 @@ protected:
   Gaudi::Property<DBaseEntries> m_input{ this, "Input", {}, "input streams" };
   Gaudi::Property<DBaseEntries> m_output{ this, "Output", {}, "output streams" };
 
+  Gaudi::Property<int> m_basketsize{ this, "BasketSize", 32000, "BasketSize" }; // ROOT default
   /// Container of connection points
   std::map<std::string, Connection> m_connections;
 };
diff --git a/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml b/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml
index 86474ac7d41185457b005501c55363676ff52e9a..95b06444d4d34057e63dbe0188a2a8de7cfe370f 100644
--- a/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml
+++ b/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml
@@ -273,6 +273,7 @@ stdout: |-
   NTupleSvc.AuditStart:False
   NTupleSvc.AuditStop:False
   NTupleSvc.AutoRetrieveTools:True
+  NTupleSvc.BasketSize:32000
   NTupleSvc.CheckToolDeps:True
   NTupleSvc.DataAccessName:'DataAccess'
   NTupleSvc.DataFaultName:'DataFault'
diff --git a/RootHistCnv/src/RCWNTupleCnv.cpp b/RootHistCnv/src/RCWNTupleCnv.cpp
index dc391c1ec5550498218a71182ab50c9552887422..6c37910e69f791356e09d5b17d3963c69dd795af 100644
--- a/RootHistCnv/src/RCWNTupleCnv.cpp
+++ b/RootHistCnv/src/RCWNTupleCnv.cpp
@@ -198,6 +198,10 @@ StatusCode RootHistCnv::RCWNTupleCnv::book( const std::string& desc, INTuple* nt
 
   // Loop over items, creating a new branch for each one;
   unsigned int i_item = 0;
+
+  Gaudi::Property<int> basket_size( "BasketSize", 32000 );
+  m_ntupleSvc.as<IProperty>()->getProperty( &basket_size ).ignore();
+
   for ( auto itr = item_name.cbegin(); itr != end; ++itr, ++i_item ) {
 
     buf_pos = buff + item_buf_pos[i_item];
@@ -214,8 +218,7 @@ StatusCode RootHistCnv::RCWNTupleCnv::book( const std::string& desc, INTuple* nt
 #else
     TBranch* br = new TBranch(
 #endif
-                           item_fullname[i_item].c_str(), buf_pos, itr->second.c_str() );
-
+                           item_fullname[i_item].c_str(), buf_pos, itr->second.c_str(), basket_size );
     if ( itr->first != "AUTO_BLK" ) {
       std::string title = itr->first;
       title             = itr->first + "::" + br->GetTitle();