I am having a problem with fork() and the child processes becoming zombies.

I am using the code from the Advanced Linux Programming book that sets up a simple
web server that forks child processes to handle requests. This is all working OK but
when the child processes complete they are not being cleared correctly by the
signal handler clean up function that calls the wait() function.

I am wondering if there is anything that needs to be done beyond the code from
the book if this program is running on a Dual Processor machine?

Cheers in advance
Jim