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;
 }