Moved TASK_Create call to KERNEL initialisation routine. Clear last error code before calling main entry point (reported by James Juran).
diff --git a/dlls/kernel/kernel_main.c b/dlls/kernel/kernel_main.c index bf0fb27..0e546a5 100644 --- a/dlls/kernel/kernel_main.c +++ b/dlls/kernel/kernel_main.c
@@ -25,6 +25,8 @@ static BOOL process_attach(void) { HMODULE16 hModule; + STARTUPINFOA startup_info; + UINT cmdShow = 1; /* SW_SHOWNORMAL but we don't want to include winuser.h here */ /* Setup codepage info */ CODEPAGE_Init(); @@ -77,6 +79,13 @@ /* Read DOS config.sys */ if (!DOSCONF_ReadConfig()) return FALSE; + /* Create 16-bit task */ + GetStartupInfoA( &startup_info ); + if (startup_info.dwFlags & STARTF_USESHOWWINDOW) cmdShow = startup_info.wShowWindow; + if (!TASK_Create( (NE_MODULE *)GlobalLock16( MapHModuleLS(GetModuleHandleA(0)) ), + cmdShow, NtCurrentTeb(), NULL, 0 )) + return FALSE; + return TRUE; }