diff --git a/src/main/java/teetime/framework/A1ThreadableStageCollector.java b/src/main/java/teetime/framework/A1ThreadableStageCollector.java
index 0b34c30bdb024cde2a78756d2dd4524514736cd5..387ad88f18ec95014136bfa6aedf145d1e11aadf 100644
--- a/src/main/java/teetime/framework/A1ThreadableStageCollector.java
+++ b/src/main/java/teetime/framework/A1ThreadableStageCollector.java
@@ -19,6 +19,7 @@ import java.util.HashSet;
 import java.util.Set;
 
 import teetime.framework.Traverser.VisitorBehavior;
+import teetime.framework.pipe.DummyPipe;
 
 /**
  * Searches for threadable stages
@@ -44,4 +45,10 @@ class A1ThreadableStageCollector implements ITraverserVisitor {
 		return VisitorBehavior.CONTINUE;
 	}
 
+	@Override
+	public void visit(final DummyPipe pipe, final AbstractPort<?> port) {
+		// TODO Auto-generated method stub
+
+	}
+
 }
diff --git a/src/main/java/teetime/framework/A2InvalidThreadAssignmentCheck.java b/src/main/java/teetime/framework/A2InvalidThreadAssignmentCheck.java
index 043c31ee365f61ce0fd2927f51b55c393e71c2f7..fd4712307644ecd9e4305f31f3b491961e9ad925 100644
--- a/src/main/java/teetime/framework/A2InvalidThreadAssignmentCheck.java
+++ b/src/main/java/teetime/framework/A2InvalidThreadAssignmentCheck.java
@@ -21,6 +21,7 @@ import com.carrotsearch.hppc.ObjectIntHashMap;
 import com.carrotsearch.hppc.ObjectIntMap;
 
 import teetime.framework.Traverser.VisitorBehavior;
+import teetime.framework.pipe.DummyPipe;
 import teetime.framework.pipe.IPipe;
 
 /**
@@ -90,5 +91,11 @@ public class A2InvalidThreadAssignmentCheck {
 			return VisitorBehavior.STOP;
 		}
 
+		@Override
+		public void visit(final DummyPipe pipe, final AbstractPort<?> port) {
+			// TODO Auto-generated method stub
+
+		}
+
 	}
 }
diff --git a/src/main/java/teetime/framework/A3PipeInstantiation.java b/src/main/java/teetime/framework/A3PipeInstantiation.java
index e5b6ea062f46983efc659108b24238bc17b2ca82..72afb486ed82d9dc7d9bcaa8961aa6ded9d7a581 100644
--- a/src/main/java/teetime/framework/A3PipeInstantiation.java
+++ b/src/main/java/teetime/framework/A3PipeInstantiation.java
@@ -22,6 +22,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import teetime.framework.Traverser.VisitorBehavior;
+import teetime.framework.pipe.DummyPipe;
 import teetime.framework.pipe.IPipe;
 import teetime.framework.pipe.IPipeFactory;
 import teetime.framework.pipe.InstantiationPipe;
@@ -90,4 +91,12 @@ class A3PipeInstantiation implements ITraverserVisitor {
 		}
 
 	}
+
+	@Override
+	public void visit(final DummyPipe pipe, final AbstractPort<?> port) {
+		if (LOGGER.isInfoEnabled()) {
+			LOGGER.info("Unconnected port " + port + " in stage " + port.getOwningStage().getId());
+		}
+	}
+
 }
diff --git a/src/main/java/teetime/framework/ITraverserVisitor.java b/src/main/java/teetime/framework/ITraverserVisitor.java
index 5cd376f07062437affec96bae3b31c95f777af2e..f089a258104be16050a059274784aab52ffea936 100644
--- a/src/main/java/teetime/framework/ITraverserVisitor.java
+++ b/src/main/java/teetime/framework/ITraverserVisitor.java
@@ -16,6 +16,7 @@
 package teetime.framework;
 
 import teetime.framework.Traverser.VisitorBehavior;
+import teetime.framework.pipe.DummyPipe;
 
 public interface ITraverserVisitor {
 
@@ -23,4 +24,6 @@ public interface ITraverserVisitor {
 
 	VisitorBehavior visit(AbstractPort<?> port);
 
+	void visit(DummyPipe pipe, AbstractPort<?> port);
+
 }
diff --git a/src/main/java/teetime/framework/IntraStageCollector.java b/src/main/java/teetime/framework/IntraStageCollector.java
index 40ccaa5bba2919c9feb550f0bb5b545c0b6b9d52..3e95ba4daab30808d950bbe251e0b7bc63376caf 100644
--- a/src/main/java/teetime/framework/IntraStageCollector.java
+++ b/src/main/java/teetime/framework/IntraStageCollector.java
@@ -16,6 +16,7 @@
 package teetime.framework;
 
 import teetime.framework.Traverser.VisitorBehavior;
+import teetime.framework.pipe.DummyPipe;
 
 public class IntraStageCollector implements ITraverserVisitor {
 
@@ -40,4 +41,10 @@ public class IntraStageCollector implements ITraverserVisitor {
 		return VisitorBehavior.CONTINUE;
 	}
 
+	@Override
+	public void visit(final DummyPipe pipe, final AbstractPort<?> port) {
+		// TODO Auto-generated method stub
+
+	}
+
 }
diff --git a/src/main/java/teetime/framework/Traverser.java b/src/main/java/teetime/framework/Traverser.java
index 7562b4c5f20ed58bccfa7bdb622b9f0d94e6c72d..6bb62c647a640fa40cea23a800c1378d448538d7 100644
--- a/src/main/java/teetime/framework/Traverser.java
+++ b/src/main/java/teetime/framework/Traverser.java
@@ -82,6 +82,7 @@ public class Traverser {
 
 	private void visitAndTraverse(final AbstractPort<?> port, final Direction direction) {
 		if (port.getPipe() instanceof DummyPipe) {
+			traverserVisitor.visit((DummyPipe) port.getPipe(), port);
 			return;
 		}
 		VisitorBehavior behavior = traverserVisitor.visit(port);