Hi, my bad, you both and the code is obviously correct. Sorry for the bad patch. I wrongfully assumed that there was an assignment to the out-buffer at the second ch = mime2utf();
________________________________________ Fra: Hans Leidekker [h...@codeweavers.com] Sendt: 12. juli 2012 09:23 Til: wine-devel@winehq.org; Oleg Jakobsen Emne: Re: msi: fix incorrect decoding of msi stream-names On Wed, 2012-07-11 at 15:03 +0000, Oleg Jakobsen wrote: > @@ -203,6 +203,7 @@ BOOL decode_streamname(LPCWSTR in, LPWSTR out) > *out++ = mime2utf(ch&0x3f); > count++; > ch = mime2utf((ch>>6)&0x3f); > + continue; > } > } > *out++ = ch; Why is it incorrect? It seems to me that the upper bits should be written as the next character but now you are discarding them.