The portmapper problem was caused by a SIGCHLD interrupting svc_run and calling a signal handler which changed the value of errno (svc_run checks for and ignores errno == EINTR, but believes other errors are genuine and returns). The patch saves and restores errno in the SIGCHLD handler. Carl