diff --git a/core/src/main/java/com/yahoo/ycsb/Client.java b/core/src/main/java/com/yahoo/ycsb/Client.java
index 4c9809a7f74818d81e8ced6d501037466b843410..80a4a86f6800fa0f9d21e036d3fe20c3ecc36634 100644
--- a/core/src/main/java/com/yahoo/ycsb/Client.java
+++ b/core/src/main/java/com/yahoo/ycsb/Client.java
@@ -800,7 +800,13 @@ public class Client
 
 		if (status)
 		{
-			statusthread.interrupt();
+		    // wake up status thread if it's asleep
+		    statusthread.interrupt();
+		    // at this point we assume all the monitored threads are already gone as per above join loop.
+			try {
+                statusthread.join();
+            } catch (InterruptedException e) {
+            }
 		}
 
 		try