diff --git a/src/bench/bench.cpp b/src/bench/bench.cpp
index 227546a7a..8942da8c7 100644
--- a/src/bench/bench.cpp
+++ b/src/bench/bench.cpp
@@ -64,8 +64,11 @@ bool State::KeepRunning()
           return true;
         }
         if (elapsed*16 < maxElapsed) {
-          countMask = ((countMask<<1)|1) & ((1LL<<60)-1);
-          countMaskInv = 1./(countMask+1);
+          uint64_t newCountMask = ((countMask<<1)|1) & ((1LL<<60)-1);
+          if ((count & newCountMask)==0) {
+              countMask = newCountMask;
+              countMaskInv = 1./(countMask+1);
+          }
         }
     }
     lastTime = now;