http://bugs.winehq.org/show_bug.cgi?id=59522 --- Comment #9 from Robert-Gerigk@online.de --- I think I found the root cause. The application uses Microsoft.WindowsAPICodePack.Shell.dll wich has a TaskbarList.get_Instance() property with double-check locking: lock (_syncLock) { _taskbarList = new CTaskbarList(); // CoCreateInstance _taskbarList.HrInit(); } This is called from a thread pool thread (MTA). Since CTaskbarList is apartment-threaded, CoCreateInstance needs to marshal to the STA thread. But the STA thread is blocked (waiting for the Async operation to complete), causing the deadlock. On Windows this presumably works because the STA message pump handles the COM marshaling request even while waiting. Under Wine the STA thread doesnt pump messages during the wait, so the marshal request never completes. So the real fix would be in Wine COM message pumping during STA waits, not in the threading model of TaskbarList. The threading(both) workaround avoids the cross-apartment marshal entirely, wich is why it works but is not correct. I will double-check this analysis to make sure it is really the root cause. If it is, a proper fix seems quite complex to me, it appears to be a lot more involved in the COM message pumping during STA blocking waits. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.