--- setpgrp.c.orig 2006-09-17 12:11:20.000000000 -0700 +++ setpgrp.c 2006-09-24 16:13:25.000000000 -0700 @@ -40,8 +40,13 @@ #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; }