diff --git a/src/test/java/teetime/framework/RunnableConsumerStageTestConfiguration.java b/src/test/java/teetime/framework/RunnableConsumerStageTestConfiguration.java
index 09a90d5eb32298d746d4af7d3de1773d6158ec86..74039dad02e58683b0c6f107d09788ffe1b42597 100644
--- a/src/test/java/teetime/framework/RunnableConsumerStageTestConfiguration.java
+++ b/src/test/java/teetime/framework/RunnableConsumerStageTestConfiguration.java
@@ -18,7 +18,6 @@ package teetime.framework;
 import java.util.ArrayList;
 import java.util.List;
 
-import teetime.framework.pipe.IPipe;
 import teetime.framework.pipe.BoundedSynchedPipe;
 import teetime.stage.CollectorSink;
 import teetime.stage.InitialElementProducer;
@@ -38,8 +37,8 @@ public class RunnableConsumerStageTestConfiguration extends Configuration {
 		collectorSink.declareActive();
 
 		// Can not use createPorts, as the if condition above will lead to an exception
-		IPipe pipe = new BoundedSynchedPipe(producer.getOutputPort(), collectorSink.getInputPort());
-		registerCustomPipe((AbstractPipe<?>) pipe);
+		AbstractPipe<Integer> pipe = new BoundedSynchedPipe<Integer>(producer.getOutputPort(), collectorSink.getInputPort());
+		registerCustomPipe(pipe);
 
 		this.collectorSink = collectorSink;
 	}
diff --git a/src/test/java/teetime/framework/pipe/BoundedSynchedPipeTest.java b/src/test/java/teetime/framework/pipe/BoundedSynchedPipeTest.java
index bb4d2625906225966cde479a07a0bfaa3cd67e95..0a6e54764b325e58002e82f91bf6035dd67abc11 100644
--- a/src/test/java/teetime/framework/pipe/BoundedSynchedPipeTest.java
+++ b/src/test/java/teetime/framework/pipe/BoundedSynchedPipeTest.java
@@ -41,7 +41,7 @@ public class BoundedSynchedPipeTest {
 		Merger<Object> portSource = new Merger<Object>();
 		OutputPort<Object> sourcePort = portSource.getOutputPort();
 		InputPort<Object> targetPort = portSource.getNewInputPort();
-		AbstractSynchedPipe pipe = new BoundedSynchedPipe(sourcePort, targetPort, 1); // IPipe does not provide getSignal method
+		AbstractSynchedPipe<?> pipe = new BoundedSynchedPipe<Object>(sourcePort, targetPort, 1); // IPipe does not provide getSignal method
 
 		List<ISignal> signals = new ArrayList<ISignal>();
 		signals.add(new StartingSignal());
@@ -71,7 +71,7 @@ public class BoundedSynchedPipeTest {
 
 	@Test(expected = IllegalArgumentException.class)
 	public void testAdd() throws Exception {
-		BoundedSynchedPipe pipe = new BoundedSynchedPipe(null, null, 4);
+		BoundedSynchedPipe<?> pipe = new BoundedSynchedPipe<Object>(null, null, 4);
 		assertFalse(pipe.add(null));
 	}
 }
diff --git a/src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java b/src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java
index e271d85da58f907d3c684c6789999858541e5d84..c6624f91ae014f4c7c70c44f950134bf4c742d4b 100644
--- a/src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java
+++ b/src/test/java/teetime/stage/basic/merger/MergerTestingPipe.java
@@ -22,7 +22,7 @@ import teetime.framework.signal.ISignal;
 import teetime.framework.signal.StartingSignal;
 import teetime.framework.signal.TerminatingSignal;
 
-class MergerTestingPipe implements IPipe {
+class MergerTestingPipe implements IPipe<Object> {
 
 	private boolean startSent = false;
 	private boolean terminateSent = false;
@@ -85,7 +85,7 @@ class MergerTestingPipe implements IPipe {
 	}
 
 	@Override
-	public InputPort<?> getTargetPort() {
+	public InputPort<Object> getTargetPort() {
 		return null;
 	}