diff --git a/reactos/lib/kernel32/misc/nls.c b/reactos/lib/kernel32/misc/nls.c index 2153bcb6169..81b06eb8d44 100755 --- a/reactos/lib/kernel32/misc/nls.c +++ b/reactos/lib/kernel32/misc/nls.c @@ -344,9 +344,12 @@ IntMultiByteToWideCharUTF8(DWORD Flags, continue; } Length = UTF8Length[Char - 0x80]; - WideChar = UTF8Mask[Length]; + WideChar = Char & UTF8Mask[Length]; while (Length && MultiByteString < MbsEnd) + { WideChar = (WideChar << 6) | *MultiByteString++; + Length--; + } *WideCharString++ = WideChar; }