diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java
index aa6cd42832b8dcab364f9bddd529da517c64a941..733895516966f1ee0f162c258cd45c426cc89fc1 100644
--- a/src/main/java/teetime/framework/Analysis.java
+++ b/src/main/java/teetime/framework/Analysis.java
@@ -138,40 +138,25 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught
 			case BY_SIGNAL: {
 				final RunnableConsumerStage runnableConsumerStage = new RunnableConsumerStage(stage);
 				final Thread thread = new Thread(runnableConsumerStage);
-				stage.setExceptionHandler(newListener);
-				for (Stage intraStage : intraStages) {
-					intraStage.setOwningThread(thread);
-					intraStage.setExceptionHandler(newListener);
-				}
 				this.consumerThreads.add(thread);
-				thread.setUncaughtExceptionHandler(this);
-				thread.setName(stage.getId());
+
+				configureThread(newListener, intraStages, stage, thread);
 				break;
 			}
 			case BY_SELF_DECISION: {
 				final RunnableProducerStage runnable = new RunnableProducerStage(stage);
 				final Thread thread = new Thread(runnable);
-				stage.setExceptionHandler(newListener);
-				for (Stage intraStage : intraStages) {
-					intraStage.setOwningThread(thread);
-					intraStage.setExceptionHandler(newListener);
-				}
 				this.finiteProducerThreads.add(thread);
-				thread.setUncaughtExceptionHandler(this);
-				thread.setName(stage.getId());
+
+				configureThread(newListener, intraStages, stage, thread);
 				break;
 			}
 			case BY_INTERRUPT: {
 				final RunnableProducerStage runnable = new RunnableProducerStage(stage);
 				final Thread thread = new Thread(runnable);
-				stage.setExceptionHandler(newListener);
-				for (Stage intraStage : intraStages) {
-					intraStage.setOwningThread(thread);
-					intraStage.setExceptionHandler(newListener);
-				}
 				this.infiniteProducerThreads.add(thread);
-				thread.setUncaughtExceptionHandler(this);
-				thread.setName(stage.getId());
+
+				configureThread(newListener, intraStages, stage, thread);
 				break;
 			}
 			default:
@@ -181,6 +166,16 @@ 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) {
+		stage.setExceptionHandler(newListener);
+		for (Stage intraStage : intraStages) {
+			intraStage.setOwningThread(thread);
+			intraStage.setExceptionHandler(newListener);
+		}
+		thread.setUncaughtExceptionHandler(this);
+		thread.setName(stage.getId());
+	}
+
 	/**
 	 * This method will start the Analysis and all containing stages.
 	 *
diff --git a/src/site/markdown/wiki b/src/site/markdown/wiki
index 162510ff4d2f04011498ba6920aae0c78347c6c8..0e4474577e1f49bc96e734c286b2d9e0363895e8 160000
--- a/src/site/markdown/wiki
+++ b/src/site/markdown/wiki
@@ -1 +1 @@
-Subproject commit 162510ff4d2f04011498ba6920aae0c78347c6c8
+Subproject commit 0e4474577e1f49bc96e734c286b2d9e0363895e8