http://bugs.winehq.org/show_bug.cgi?id=26591
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com 2011-03-29 15:47:17 CDT --- Mmm, does it help if you adjust error handling a bit here:
--- hr = IMoniker_BindToStorage(moniker, pbc, NULL, &IID_IStream, (void**)&stream); IMoniker_Release(moniker); if (stream) IStream_Release(stream); ---
Change that to let's say
--- - if (stream) IStream_Release(stream) + if (hr == S_OK) IStream_Release(stream) ---
There's a failure path in urlmon that doesn't reset stream pointer, could be a problem.