diff --git a/src/backend/common/GpuWorker.h b/src/backend/common/GpuWorker.h
index 3c828e528..462cf6fad 100644
--- a/src/backend/common/GpuWorker.h
+++ b/src/backend/common/GpuWorker.h
@@ -49,6 +49,8 @@ protected:
     std::atomic<uint32_t> m_index   = {};
     uint64_t m_hashCount[2]         = {};
     uint64_t m_timestamp[2]         = {};
+
+    uint64_t m_count                = 0;
 };
 
 
diff --git a/src/backend/common/Worker.h b/src/backend/common/Worker.h
index 6a94a22ac..a1b697f0f 100644
--- a/src/backend/common/Worker.h
+++ b/src/backend/common/Worker.h
@@ -20,6 +20,9 @@
 #define XMRIG_WORKER_H
 
 
+#include <atomic>
+
+
 #include "backend/common/interfaces/IWorker.h"
 
 
@@ -38,8 +41,6 @@ protected:
     inline size_t id() const override                       { return m_id; }
     inline uint32_t node() const                            { return m_node; }
 
-    uint64_t m_count                = 0;
-
 private:
     const int64_t m_affinity;
     const size_t m_id;
diff --git a/src/backend/cpu/CpuWorker.cpp b/src/backend/cpu/CpuWorker.cpp
index bef2e898e..6a4aa232c 100644
--- a/src/backend/cpu/CpuWorker.cpp
+++ b/src/backend/cpu/CpuWorker.cpp
@@ -232,8 +232,8 @@ bool xmrig::CpuWorker<N>::selfTest()
 template<size_t N>
 void xmrig::CpuWorker<N>::hashrateData(uint64_t &hashCount, uint64_t &, uint64_t &rawHashes) const
 {
-    hashCount = m_count;
-    rawHashes = m_count;
+    hashCount = m_count.load(std::memory_order_relaxed);
+    rawHashes = hashCount;
 }
 
 
@@ -351,7 +351,8 @@ void xmrig::CpuWorker<N>::start()
                         JobResults::submit(job, current_job_nonces[i], m_hash + (i * 32), job.hasMinerSignature() ? miner_signature_saved : nullptr);
                     }
                 }
-                m_count += N;
+                
+                m_count.fetch_add(N, std::memory_order_relaxed);
             }
 
             if (m_yield) {
diff --git a/src/backend/cpu/CpuWorker.h b/src/backend/cpu/CpuWorker.h
index 18e4fed5c..c08c90c40 100644
--- a/src/backend/cpu/CpuWorker.h
+++ b/src/backend/cpu/CpuWorker.h
@@ -107,6 +107,8 @@ private:
 #   ifdef XMRIG_FEATURE_BENCHMARK
     uint32_t m_benchSize    = 0;
 #   endif
+
+    std::atomic<uint64_t> m_count = {0};
 };