Hi, I have written a concurrent server that listen for connection. Once it accepts a connection, the server fork a child and it handles the communication. The parent goes back to listen for another connection. Everything works fine, until the child process exit (I do an exit(0) when the child sends the last piece of info back). The child doesn't exit cleanly and I end up with a bucnh of <defunct> process. Did a google and ppl suggested to use waitpid on the parent which defeats the idea of having a concurrent server. Can anyone shed some light on this? Thanks a bucnh!!