Don't include build number in GetVersion() for Win9x versions.
diff --git a/dlls/kernel/version.c b/dlls/kernel/version.c
index 053eaee..e4c1e92 100644
--- a/dlls/kernel/version.c
+++ b/dlls/kernel/version.c
@@ -196,16 +196,28 @@
/***********************************************************************
* GetVersion (KERNEL32.@)
+ *
+ * Win31 0x80000a03
+ * Win95 0xc0000004
+ * Win98 0xc0000a04
+ * WinME 0xc0005a04
+ * NT351 0x04213303
+ * NT4 0x05650004
+ * Win2000 0x08930005
+ * WinXP 0x0a280105
*/
DWORD WINAPI GetVersion(void)
{
RTL_OSVERSIONINFOEXW info;
+ DWORD result;
info.dwOSVersionInfoSize = sizeof(info);
if (RtlGetVersion( &info ) != STATUS_SUCCESS) return 0;
- return MAKELONG( MAKEWORD( info.dwMajorVersion, info.dwMinorVersion ),
- LOWORD(info.dwBuildNumber) | ((info.dwPlatformId ^ 2) << 14) );
+ result = MAKELONG( MAKEWORD( info.dwMajorVersion, info.dwMinorVersion ),
+ (info.dwPlatformId ^ 2) << 14 );
+ if (info.dwPlatformId == VER_PLATFORM_WIN32_NT) result |= LOWORD(info.dwBuildNumber) << 16;
+ return result;
}