I've just checked the man pages to refresh my memory, and it appears that vfork() suspends the parent process while the child is using its resources (i.e. until it exits or execs). Thus, this appears to be one of the few cases where fork() is preferable to vfork() and would certainly have caught me out if I was doing what you're doing:-)