Maybe you accidently did something that made the calls to CreateSemaphore, OpenSemaphore & CloseHandle unbalanced? From MSDN http://msdn.microsoft.com/en-us/library/ms682438(v=VS.85).aspx