$spawn_httpd->();
 if ('test worker death') {
        my $conn = conn_for($sock, 'killed worker');
-       $conn->write("GET /pid HTTP/1.0\r\n\r\n");
-       ok($conn->read(my $buf, 8192), 'read response');
-       my ($head, $body) = split(/\r\n\r\n/, $buf);
-       like($body, qr/\A[0-9]+\z/, '/pid response');
-       my $pid = $body;
+       $conn->write("GET /pid HTTP/1.1\r\nHost:example.com\r\n\r\n");
+       my $pid;
+       while (defined(my $line = $conn->getline)) {
+               next unless $line eq "\r\n";
+               chomp($pid = $conn->getline);
+               last;
+       }
+       like($pid, qr/\A[0-9]+\z/, '/pid response');
        is(kill('KILL', $pid), 1, 'killed worker');
+       is($conn->getline, undef, 'worker died and EOF-ed client');
 
        $conn = conn_for($sock, 'respawned worker');
        $conn->write("GET /pid HTTP/1.0\r\n\r\n");
-       ok($conn->read($buf, 8192), 'read response');
-       ($head, $body) = split(/\r\n\r\n/, $buf);
+       ok($conn->read(my $buf, 8192), 'read response');
+       my ($head, $body) = split(/\r\n\r\n/, $buf);
+       chomp($body);
        like($body, qr/\A[0-9]+\z/, '/pid response');
        isnt($body, $pid, 'respawned worker');
 }