Thanks for the reply. The problem isn't signal handling, nor is it using forkIO. It's using both of them together.