diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java
index 733895516966f1ee0f162c258cd45c426cc89fc1..34e7898deb90e1e10f9c37094e786da8999866aa 100644
--- a/src/main/java/teetime/framework/Analysis.java
+++ b/src/main/java/teetime/framework/Analysis.java
@@ -136,27 +136,21 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught
 			newListener = factory.create();
 			switch (stage.getTerminationStrategy()) {
 			case BY_SIGNAL: {
-				final RunnableConsumerStage runnableConsumerStage = new RunnableConsumerStage(stage);
-				final Thread thread = new Thread(runnableConsumerStage);
+				final RunnableConsumerStage runnable = new RunnableConsumerStage(stage);
+				final Thread thread = createThread(newListener, intraStages, stage, runnable);
 				this.consumerThreads.add(thread);
-
-				configureThread(newListener, intraStages, stage, thread);
 				break;
 			}
 			case BY_SELF_DECISION: {
 				final RunnableProducerStage runnable = new RunnableProducerStage(stage);
-				final Thread thread = new Thread(runnable);
+				final Thread thread = createThread(newListener, intraStages, stage, runnable);
 				this.finiteProducerThreads.add(thread);
-
-				configureThread(newListener, intraStages, stage, thread);
 				break;
 			}
 			case BY_INTERRUPT: {
 				final RunnableProducerStage runnable = new RunnableProducerStage(stage);
-				final Thread thread = new Thread(runnable);
+				final Thread thread = createThread(newListener, intraStages, stage, runnable);
 				this.infiniteProducerThreads.add(thread);
-
-				configureThread(newListener, intraStages, stage, thread);
 				break;
 			}
 			default:
@@ -166,7 +160,8 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught
 
 	}
 
-	private void configureThread(final AbstractExceptionListener newListener, final Set<Stage> intraStages, final Stage stage, final Thread thread) {
+	private Thread createThread(final AbstractExceptionListener newListener, final Set<Stage> intraStages, final Stage stage, final AbstractRunnableStage runnable) {
+		final Thread thread = new Thread(runnable);
 		stage.setExceptionHandler(newListener);
 		for (Stage intraStage : intraStages) {
 			intraStage.setOwningThread(thread);
@@ -174,6 +169,7 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught
 		}
 		thread.setUncaughtExceptionHandler(this);
 		thread.setName(stage.getId());
+		return thread;
 	}
 
 	/**
diff --git a/src/site/markdown/wiki b/src/site/markdown/wiki
index 0e4474577e1f49bc96e734c286b2d9e0363895e8..162510ff4d2f04011498ba6920aae0c78347c6c8 160000
--- a/src/site/markdown/wiki
+++ b/src/site/markdown/wiki
@@ -1 +1 @@
-Subproject commit 0e4474577e1f49bc96e734c286b2d9e0363895e8
+Subproject commit 162510ff4d2f04011498ba6920aae0c78347c6c8