I've discovered a race condition in TerminateThread. Basically, if a thread is terminated before it has fully started, than the thread leaves a wine process around when the process exits. I wouldn't have figured this out if it weren't for the OpenThread code which was just added (it slowed down my test enough that with '--winver win2000' the thread was able to start, whereas with '--winver win98' it couldn't (due to testing OpenThread before calling TerminateThread when in win2k mode).
It should be duplicatable by simply calling thread=CreateThread(); TerminateThread(thread,0);
with no wait between them. Anyhow, I really have no idea how to locate this, but I'd be happy to try if someone can give me a hand.
Thanks, .Geoff