Index: benchmark/io/http/main.cfa
===================================================================
--- benchmark/io/http/main.cfa	(revision 2ecbd7bd42669e3d5c187c5bee962619b21edabe)
+++ benchmark/io/http/main.cfa	(revision e95a1170b44d57c450f82df8d406ba7ec2075518)
@@ -100,6 +100,13 @@
 				{
 					Acceptor acceptor = { server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen, 0 };
+
+					char buffer[128];
+					while(!feof(stdin)) {
+						fgets(buffer, 128, stdin);
+					}
+
+					printf("Shutting Down\n");
 				}
-				printf("Shutting Down\n");
+				printf("Acceptor Closed\n");
 
 				// Clean-up the workers
@@ -108,4 +115,5 @@
 				}
 			}
+			printf("Workers Closed\n");
 		}
 	}
Index: benchmark/io/http/protocol.cfa
===================================================================
--- benchmark/io/http/protocol.cfa	(revision 2ecbd7bd42669e3d5c187c5bee962619b21edabe)
+++ benchmark/io/http/protocol.cfa	(revision e95a1170b44d57c450f82df8d406ba7ec2075518)
@@ -75,6 +75,6 @@
 	for() {
 		int ret = cfa_read(fd, it, count);
+		if(ret == 0 ) return [OK200, true, 0p, 0];
 		if(ret < 0 ) {
-			if( errno ) return [OK200, true, 0p, 0];
 			if( errno == EAGAIN || errno == EWOULDBLOCK) continue READ;
 			abort( "read error: (%d) %s\n", (int)errno, strerror(errno) );
Index: benchmark/io/http/worker.cfa
===================================================================
--- benchmark/io/http/worker.cfa	(revision 2ecbd7bd42669e3d5c187c5bee962619b21edabe)
+++ benchmark/io/http/worker.cfa	(revision e95a1170b44d57c450f82df8d406ba7ec2075518)
@@ -33,6 +33,9 @@
 void main( Worker & this ) {
 	CONNECTION:
-	while( int fd = take(wait_connect); fd >= 0) {
-            printf("New connection, waiting for requests\n");
+	for() {
+		int fd = take(wait_connect);
+		if (fd < 0) break;
+
+		printf("New connection %d, waiting for requests\n", fd);
 		REQUEST:
 		for() {
@@ -105,6 +108,6 @@
 		}
 
-            printf("New connection accepted\n");
+		printf("New connection accepted\n");
 		put( wait_connect, ret );
-      }
+	}
 }
