Anyway, what is DOES NOT do is GUI in forked process. That might be the cause of crash.
If I understand fork docs correctly, that pesky socket will be duplicated. That means you will have two processes communicating with X11 instead of one - but for X11, it will still be a single process.