diff --git a/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java b/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java
index b3a927008c1f95351b683b6fca97e88b2ca440f6..31a9775dbfef2de71245b20a717fad48b551b744 100644
--- a/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java
+++ b/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java
@@ -53,8 +53,9 @@ public class SignalingCounter {
 		}
 
 		final Object cond = conditions.get(number);
-		while (counter != number) {
-			synchronized (cond) {
+
+		synchronized (cond) { // counter must be wrapped by synchronized to get the latest value
+			while (counter != number) {
 				cond.wait();
 			}
 		}