I think that the problem in this application is completely different. I don't know why your patch makes a difference for you but it doesn't help in my case (as expected). Please note that I would like to get your patch committed to wine anyway. But the commit message doesn't make sense (please change it to `msvcp90: Make _Condition_variable_* function pointers static.`).
I have quickly debugged the issue and it's related to internal representation of SRWLock. The application does following thing: ``` SRWLock *lock; lock = malloc(sizeof(*lock)); lock->Ptr = (void*)1; ReleaseSRWLockExclusive(lock); ``` On Windows lock->Ptr=1 is used to mark that the exclusive lock is being held with no waiters. In this case ReleaseSRWLockExclusive should probably set lock->Ptr=NULL and return. See attached hack that lets the application start on my machine ([0001-tmp.txt](/uploads/506068c59882aaf35362845fa9b82fea/0001-tmp.txt)).
@zfigura - you may be interested in looking into it :smile: