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;
}