Why would threads that exit the daemon seem to be jumping to _cygheap_start ? when it's shutting down, the threads all happily call ExitThread (I'm using native win32 calls for efficiency), but the threads don't get cleaned up - they sit in _cygheap_start. However that looks like data not code space to me...? Any suggestions? Rob