diff --git a/src/main/java/teetime/framework/DynamicActuator.java b/src/main/java/teetime/framework/DynamicActuator.java
index acc8e99013e237cc05f366de2d8637613086d5b3..a50814d2993d7e6decf5c6bb6937664004ac51d2 100644
--- a/src/main/java/teetime/framework/DynamicActuator.java
+++ b/src/main/java/teetime/framework/DynamicActuator.java
@@ -31,6 +31,10 @@ public class DynamicActuator {
 	public Runnable startWithinNewThread(final Stage stage) {
 		Runnable runnable = wrap(stage);
 		Thread thread = new Thread(runnable);
+
+		stage.setOwningThread(thread);
+		stage.setExceptionHandler(null);
+
 		thread.start();
 		return runnable;
 	}
diff --git a/src/main/java/teetime/framework/ThreadService.java b/src/main/java/teetime/framework/ThreadService.java
index c703d68c68061c6e351b1cefe7c40ab6f1befd92..913d15bbd7642354677efa58dd4a9c65b9aa6667 100644
--- a/src/main/java/teetime/framework/ThreadService.java
+++ b/src/main/java/teetime/framework/ThreadService.java
@@ -206,7 +206,8 @@ class ThreadService extends AbstractService<ThreadService> {
 
 	@Override
 	void merge(final ThreadService source) {
-		this.getThreadableStages().putAll(source.getThreadableStages());
+		threadableStages.putAll(source.getThreadableStages());
+		runnableCounter.inc(source.runnableCounter);
 	}
 
 	SignalingCounter getRunnableCounter() {
diff --git a/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java b/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java
index 31a9775dbfef2de71245b20a717fad48b551b744..64deae6a6168edaf34244ba643b929805ea14756 100644
--- a/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java
+++ b/src/main/java/teetime/util/framework/concurrent/SignalingCounter.java
@@ -60,4 +60,9 @@ public class SignalingCounter {
 			}
 		}
 	}
+
+	public synchronized void inc(final SignalingCounter otherCounter) {
+		counter += otherCounter.counter;
+		conditionalNotifyAll(counter);
+	}
 }