--- sys/kern/sys_pipe.c (revision 277961) +++ sys/kern/sys_pipe.c (working copy) @@ -381,12 +381,11 @@ ino = dpipe->pipe_ino; funsetown(&dpipe->pipe_sigio); - pipeclose(dpipe); if (dpipe->pipe_state & PIPE_NAMED) { - dpipe = dpipe->pipe_peer; - funsetown(&dpipe->pipe_sigio); - pipeclose(dpipe); + funsetown(&dpipe->pipe_peer->pipe_sigio); + pipeclose(dpipe->pipe_peer); } + pipeclose(dpipe); if (ino != 0 && ino != (ino_t)-1) free_unr(pipeino_unr, ino); }