Tests: fixed race in SCGI tests.
diff --git a/scgi.t b/scgi.t
index 8b98628..15cbc76 100644
--- a/scgi.t
+++ b/scgi.t
@@ -64,7 +64,7 @@
 EOF
 
 $t->run_daemon(\&scgi_daemon);
-$t->run();
+$t->run()->waitforsocket('127.0.0.1:' . port(1));
 
 ###############################################################################
 
@@ -126,8 +126,10 @@
 	my $count = 0;
 
 	while (my $request = $scgi->accept()) {
+		eval { $request->read_env(); };
+		next if $@;
+
 		$count++;
-		$request->read_env();
 
 		$request->connection()->print(<<EOF);
 Location: http://localhost/redirect
diff --git a/scgi_body.t b/scgi_body.t
index fd534ad..a97bee7 100644
--- a/scgi_body.t
+++ b/scgi_body.t
@@ -52,7 +52,7 @@
 EOF
 
 $t->run_daemon(\&scgi_daemon);
-$t->run();
+$t->run()->waitforsocket('127.0.0.1:' . port(1));
 
 ###############################################################################
 
@@ -114,7 +114,9 @@
 	my $body;
 
 	while (my $request = $scgi->accept()) {
-		$request->read_env();
+		eval { $request->read_env(); };
+		next if $@;
+
 		read($request->connection, $body,
 			$request->env->{CONTENT_LENGTH});
 
diff --git a/scgi_cache.t b/scgi_cache.t
index 3423c94..ddb410d 100644
--- a/scgi_cache.t
+++ b/scgi_cache.t
@@ -59,7 +59,7 @@
 EOF
 
 $t->run_daemon(\&scgi_daemon);
-$t->run();
+$t->run()->waitforsocket('127.0.0.1:' . port(1));
 
 ###############################################################################
 
@@ -93,7 +93,8 @@
 	my %count;
 
 	while (my $request = $scgi->accept()) {
-		$request->read_env();
+		eval { $request->read_env(); };
+		next if $@;
 
 		my $uri = $request->env->{REQUEST_URI} || '';
 		my $c = $request->connection();
diff --git a/scgi_gzip.t b/scgi_gzip.t
index 747693d..b602c4c 100644
--- a/scgi_gzip.t
+++ b/scgi_gzip.t
@@ -54,7 +54,7 @@
 EOF
 
 $t->run_daemon(\&scgi_daemon);
-$t->run();
+$t->run()->waitforsocket('127.0.0.1:' . port(1));
 
 ###############################################################################
 
@@ -74,7 +74,8 @@
 	my $scgi = SCGI->new($server, blocking => 1);
 
 	while (my $request = $scgi->accept()) {
-		$request->read_env();
+		eval { $request->read_env(); };
+		next if $@;
 
 		$request->connection()->print(<<EOF);
 Content-Type: text/html
diff --git a/scgi_merge_params.t b/scgi_merge_params.t
index cc3b958..9dc75ee 100644
--- a/scgi_merge_params.t
+++ b/scgi_merge_params.t
@@ -71,7 +71,7 @@
 EOF
 
 $t->run_daemon(\&scgi_daemon);
-$t->run();
+$t->run()->waitforsocket('127.0.0.1:' . port(1));
 
 ###############################################################################
 
@@ -122,11 +122,10 @@
 		or die "Can't create listening socket: $!\n";
 
 	my $scgi = SCGI->new($server, blocking => 1);
-	my $count = 0;
 
 	while (my $request = $scgi->accept()) {
-		$count++;
-		$request->read_env();
+		eval { $request->read_env(); };
+		next if $@;
 
 		my $ims = $request->env->{HTTP_IF_MODIFIED_SINCE} || '';
 		my $iums = $request->env->{HTTP_IF_UNMODIFIED_SINCE} || '';