--- sys_pipe.c.orig 2006-11-17 10:21:52.000000000 +0100 +++ sys_pipe.c 2007-08-01 20:08:09.000000000 +0200 @@ -735,9 +735,10 @@ * If the other side is blocked, wake it up saying that * we want to close it down. */ + cpipe->pipe_state |= PIPE_EOF; while (cpipe->pipe_busy) { wakeup(cpipe); - cpipe->pipe_state |= PIPE_WANT | PIPE_EOF; + cpipe->pipe_state |= PIPE_WANT; tsleep(cpipe, PRIBIO, "pipecl", 0); }