Don't initialise the stacks for 32-bit processes.
diff --git a/loader/task.c b/loader/task.c
index 9c089ee..7f3d025 100644
--- a/loader/task.c
+++ b/loader/task.c
@@ -406,6 +406,13 @@
pTask->dta = PTR_SEG_OFF_TO_SEGPTR( pTask->hPDB,
(int)&pTask->pdb.cmdLine - (int)&pTask->pdb );
+ /* Enter task handle into thread and process */
+
+ pTask->thdb->teb.htask16 = pTask->thdb->process->task = hTask;
+ TRACE_(task)("module='%s' cmdline='%s' task=%04x\n", name, cmd_line, hTask );
+
+ if (pTask->flags & TDBF_WIN32) return;
+
/* If we have a DGROUP/hInstance, use it for 16-bit stack */
if ( hInstance )
@@ -442,13 +449,6 @@
frame32->retaddr = (DWORD)TASK_CallToStart;
/* The remaining fields will be initialized in TASK_Reschedule */
- /* Enter task handle into thread and process */
-
- pTask->thdb->teb.htask16 = pTask->thdb->process->task = hTask;
-
- TRACE_(task)("module='%s' cmdline='%s' task=%04x\n",
- name, cmd_line, hTask );
-
return TRUE;
}