diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java
index 3506075674258c844187b6ac55800e8b2c3de6f1..1b3e0c9b326d9a1ca6c2208e4ad16bd412c5b495 100644
--- a/src/main/java/teetime/framework/AbstractStage.java
+++ b/src/main/java/teetime/framework/AbstractStage.java
@@ -29,7 +29,6 @@ import org.slf4j.LoggerFactory;
 import teetime.framework.exceptionHandling.AbstractExceptionListener;
 import teetime.framework.exceptionHandling.AbstractExceptionListener.FurtherExecution;
 import teetime.framework.exceptionHandling.TerminateException;
-import teetime.framework.pipe.IPipe;
 import teetime.framework.signal.ISignal;
 import teetime.framework.signal.StartingSignal;
 import teetime.framework.signal.TerminatingSignal;
@@ -279,7 +278,7 @@ public abstract class AbstractStage {
 	}
 
 	public void onValidating(final List<InvalidPortConnection> invalidPortConnections) {
-		this.validateOutputPorts(invalidPortConnections);
+		this.checkTypeCompliance();
 		changeState(StageState.VALIDATED);
 	}
 
@@ -292,7 +291,6 @@ public abstract class AbstractStage {
 	 */
 	@SuppressWarnings("PMD.SignatureDeclareThrowsException")
 	public void onStarting() throws Exception {
-		checkTypeCompliance();
 		if (logger.isDebugEnabled()) {
 			logger.debug("Stage {} within thread {}", getId(), getOwningThread().getId());
 		}
@@ -446,26 +444,6 @@ public abstract class AbstractStage {
 		return outputPort;
 	}
 
-	/**
-	 * This should check, if the OutputPorts are connected correctly. This is needed to avoid NullPointerExceptions and other errors.
-	 *
-	 * @param invalidPortConnections
-	 *            <i>(Passed as parameter for performance reasons)</i>
-	 */
-	@SuppressWarnings("PMD.DataflowAnomalyAnalysis")
-	public void validateOutputPorts(final List<InvalidPortConnection> invalidPortConnections) {
-		for (OutputPort<?> outputPort : outputPorts.getOpenedPorts()) {
-			final IPipe<?> pipe = outputPort.getPipe();
-
-			final Class<?> sourcePortType = outputPort.getType();
-			final Class<?> targetPortType = pipe.getTargetPort().getType();
-			if (null == sourcePortType || !sourcePortType.equals(targetPortType)) {
-				final InvalidPortConnection invalidPortConnection = new InvalidPortConnection(outputPort, pipe.getTargetPort());
-				invalidPortConnections.add(invalidPortConnection);
-			}
-		}
-	}
-
 	protected void terminate() {
 		changeState(StageState.TERMINATING);
 	}
diff --git a/src/test/java/teetime/framework/AbstractStageTest.java b/src/test/java/teetime/framework/AbstractStageTest.java
index 8ab3a41dfcfa77ff235f56914dbcd3c32c16f7df..baaed72d811d7c31ed9ce5a14f09990bea999119 100644
--- a/src/test/java/teetime/framework/AbstractStageTest.java
+++ b/src/test/java/teetime/framework/AbstractStageTest.java
@@ -95,7 +95,7 @@ public class AbstractStageTest {
 
 	@Test
 	public void testCheckTypeCompliance() throws Exception {
-		new Execution<Configuration>(new TestConnectionsConfig(false));
+		new Execution<Configuration>(new TestConnectionsConfig(false), true);
 	}
 
 	private class TestConnectionsConfig extends Configuration {