Index: src/libchcore/TWin32ErrorFormatter.cpp =================================================================== diff -u -N -r045540c818c374806d09742ef3d7a984d8d757d3 -ra6fac511b0dd40e1c18cab086e0bc5ff5d2bc8d7 --- src/libchcore/TWin32ErrorFormatter.cpp (.../TWin32ErrorFormatter.cpp) (revision 045540c818c374806d09742ef3d7a984d8d757d3) +++ src/libchcore/TWin32ErrorFormatter.cpp (.../TWin32ErrorFormatter.cpp) (revision a6fac511b0dd40e1c18cab086e0bc5ff5d2bc8d7) @@ -43,7 +43,11 @@ TString strData; wchar_t* pszBuffer = strData.GetBuffer(dwMaxError); - DWORD dwPos = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_FROM_HMODULE, hModule, dwErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), pszBuffer, dwMaxError - 1, NULL); + DWORD dwFlags = FORMAT_MESSAGE_FROM_SYSTEM; + if (hModule) + dwFlags |= FORMAT_MESSAGE_FROM_HMODULE; + + DWORD dwPos = FormatMessage(dwFlags, hModule, dwErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), pszBuffer, dwMaxError - 1, NULL); if (dwPos == 0xffffffff) { int iPos = 0;