What does the #ifdef __gnuc__ bit do? We have a volatile local variable (vfork_exec_errno), which is interacting with vfork in a way that seems unnecessarily subtle. (Do parent and child really reliably share a stack there? Why did the threading people need kernel support for thread local storage then?) Rob