I think you are concentrating on the case where a new thread is created. But don't forget, any time a signal is delivered (either synchronously or asynchronously), 'eiffel_signal_handler' can be called; EVEN IF THE THREAD IS NOT EIFFEL. In that case you should check 'rt_globals' to see if it is NULL. At that point I'm not sure what to do. I guess it would be nice to know that the problem was in a non-Eiffel thread.