Set 'expected_version' of built-in and dummy modules according to
emulated Windows version.

diff --git a/if1632/builtin.c b/if1632/builtin.c
index 7be0d67..7cc0b61 100644
--- a/if1632/builtin.c
+++ b/if1632/builtin.c
@@ -146,6 +146,7 @@
     NE_MODULE *pModule;
     int minsize;
     SEGTABLEENTRY *pSegTable;
+    OSVERSIONINFOA versionInfo;
 
     HMODULE16 hModule = GLOBAL_CreateBlock( GMEM_MOVEABLE, descr->module_start,
                                             descr->module_size, 0,
@@ -158,6 +159,13 @@
     pModule = (NE_MODULE *)GlobalLock16( hModule );
     pModule->self = hModule;
 
+    /* Set expected_version according to the emulated Windows version */
+
+    versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
+    if ( GetVersionExA( &versionInfo ) )
+        pModule->expected_version = (versionInfo.dwMajorVersion & 0xff) << 8
+                                  | (versionInfo.dwMinorVersion & 0xff);
+    
     /* Allocate the code segment */
 
     pSegTable = NE_SEG_TABLE( pModule );
diff --git a/loader/module.c b/loader/module.c
index d904e16..16d5370 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -341,6 +341,7 @@
     char *pStr,*s;
     int len;
     const char* basename;
+    OSVERSIONINFOA versionInfo;
 
     INT of_size = sizeof(OFSTRUCT) - sizeof(ofs->szPathName)
                     + strlen(ofs->szPathName) + 1;
@@ -378,6 +379,13 @@
     pModule->expected_version = 0x030a;
     pModule->self             = hModule;
 
+    /* Set expected_version according to the emulated Windows version */
+    versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
+    if ( GetVersionExA( &versionInfo ) )
+        pModule->expected_version = (versionInfo.dwMajorVersion & 0xff) << 8
+                                  | (versionInfo.dwMinorVersion & 0xff);
+
+
     /* Set loaded file information */
     memcpy( pModule + 1, ofs, of_size );
     ((OFSTRUCT *)(pModule+1))->cBytes = of_size - 1;