--- pppd/main.c.old 2008-04-07 10:24:28.000000000 +0200 +++ pppd/main.c 2008-04-07 10:24:48.000000000 +0200 @@ -1642,8 +1642,8 @@ } if (pid != 0) { + record_child(pid, program, NULL, NULL); if (dont_wait) { - record_child(pid, program, NULL, NULL); status = 0; } else { while (waitpid(pid, &status, 0) < 0) { @@ -1651,6 +1651,7 @@ continue; fatal("error waiting for (dis)connection process: %m"); } + forget_child(pid,status); --conn_running; } return (status == 0 ? 0 : -1);