I've just found another bug in the patch:
/* Convert to OEM, then output */convertedChars = WideCharToMultiByte(GetConsoleOutputCP(), 0,output_bufW,
len, output_bufA, MAX_WRITECONSOLE_SIZE,"?", &usedDefaultChar);The comment is correct, but code is wrong. Here should be CP_OEMCP instead of GetConsoleOutputCP().
Please, ignore it. The patch is correct.