Index: dll/win32/version/version.c =================================================================== --- dll/win32/version/version.c (revision 65753) +++ dll/win32/version/version.c (working copy) @@ -952,6 +952,9 @@ BOOL ret, isText; INT len; LPWSTR lpSubBlockW; + UINT dum = 0; + if (!puLen) + puLen = &dum; len = MultiByteToWideChar(CP_ACP, 0, lpSubBlock, -1, NULL, 0); lpSubBlockW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); @@ -965,7 +968,7 @@ HeapFree(GetProcessHeap(), 0, lpSubBlockW); - if (ret && isText) + if (ret && isText && *puLen) { /* Set lpBuffer so it points to the 'empty' area where we store * the converted strings