--- setpgrp.c.orig 2009-11-06 10:36:38.000000000 -0800 +++ setpgrp.c 2009-11-06 10:42:14.000000000 -0800 @@ -36,8 +36,13 @@ __FBSDID("$FreeBSD: src/lib/libc/compat- #include <sys/types.h> #include <unistd.h> -int -setpgrp(pid_t pid, pid_t pgid) +/* UNIX03 only */ +pid_t +setpgrp(void) { - return(setpgid(pid, pgid)); + pid_t pgid = getpgrp(); + pid_t pid = getpid(); + if (pgid != pid) + setpgid(pid, pid); + return pid; }