diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx
index cfca36481476c5fcb986e785df21cbf89971e285..1746c54e664ed2d1e3962789a70d82118c7526de 100644
--- a/io/io/inc/ROOT/TBufferMerger.hxx
+++ b/io/io/inc/ROOT/TBufferMerger.hxx
@@ -117,7 +117,7 @@ private:
    bool TryMerge(TBufferMergerFile *memfile);
 
    size_t fAutoSave{0};                                          //< AutoSave only every fAutoSave bytes
-   size_t fBuffered{0};                                          //< Number of bytes currently buffered
+   std::atomic<size_t> fBuffered{0};                             //< Number of bytes currently buffered
    TFileMerger fMerger{false, false};                            //< TFileMerger used to merge all buffers
    std::mutex fMergeMutex;                                       //< Mutex used to lock fMerger
    mutable std::mutex fQueueMutex;                               //< Mutex used to lock fQueue
diff --git a/io/io/src/TBufferMerger.cxx b/io/io/src/TBufferMerger.cxx
index 72c1a07d3f6cd6d5a8314cccea747661bc65c5fd..1c083a48d24a07403b274210988728bb9e87980a 100644
--- a/io/io/src/TBufferMerger.cxx
+++ b/io/io/src/TBufferMerger.cxx
@@ -72,7 +72,6 @@ size_t TBufferMerger::GetQueueSize() const
 
 size_t TBufferMerger::GetBuffered() const
 {
-   std::lock_guard<std::mutex> lock(fQueueMutex);
    return fBuffered;
 }