diff --git a/emper/sleep_strategy/AbstractIoSleepStrategy.hpp b/emper/sleep_strategy/AbstractIoSleepStrategy.hpp
index bab7e299664a3676c1645e17a685af8668021678..7118c8c92d254dd98ec890edcb1118c79bfa64f7 100644
--- a/emper/sleep_strategy/AbstractIoSleepStrategy.hpp
+++ b/emper/sleep_strategy/AbstractIoSleepStrategy.hpp
@@ -271,6 +271,7 @@ class AbstractIoSleepStrategy : public Logger<LogSubsystem::SLEEP_S> {
 		const unsigned toWakeup = getSleeperCountToWakeup<callerEnvironment>(sleeping, count);
 		if (toWakeup) {
 			stats.incNotify();
+			stats.addNotifications(toWakeup);
 			if constexpr (callerEnvironment == CallerEnvironment::EMPER) {
 				writeNotificationsFromEmper(hint, toWakeup);
 			} else {
diff --git a/emper/sleep_strategy/PipeSleepStrategy.hpp b/emper/sleep_strategy/PipeSleepStrategy.hpp
index 96c1e98cf85769fe34c60cbff93282d6223e4db6..c1ab8c4fca0c21d873c8acaa8589264836d53086 100644
--- a/emper/sleep_strategy/PipeSleepStrategy.hpp
+++ b/emper/sleep_strategy/PipeSleepStrategy.hpp
@@ -14,7 +14,6 @@
 #include "emper-common.h"
 #include "sleep_strategy/AbstractIoSleepStrategy.hpp"
 #include "sleep_strategy/AbstractWorkerSleepStrategy.hpp"
-#include "sleep_strategy/Stats.hpp"
 
 class Runtime;
 
@@ -47,8 +46,6 @@ class PipeSleepStrategy : public AbstractWorkerSleepStrategy<PipeSleepStrategy>,
 	Pipe global;
 
 	void writeNotifications(emper::FiberHint hint, unsigned count) {
-		stats.addNotifications(count);
-
 		std::vector<void*> hints(count, hint);
 
 		ssize_t res = write(global.notifyFd, hints.data(), sizeof(void*) * hints.size());