Oh, I wasn't sugesting that it was your fault :(.  But this situation with the runtime interfering with the FFI(and the other problems that GTK2HS with relatively undefined interactions between FFI C threading and the --threaded runtime) really seems to me that it points to a need to rethink how the FFI is designed.  I really feel that this is a set of dirty hacks that do not belong in production code.  I'm not saying that it's your fault.

However... Perhaps in the future it would actually be better to use shared memory as an IPC mechanism to communcate with C and forgoe the broken haskell FFI entirely.