Bug fixes.
diff --git a/loader/module.c b/loader/module.c index eae2b37..ebbceac 100644 --- a/loader/module.c +++ b/loader/module.c
@@ -864,6 +864,10 @@ pdb = PROCESS_IdToPDB( info.dwProcessId ); tdb = pdb? (TDB *)GlobalLock16( pdb->task ) : NULL; hInstance = tdb && tdb->hInstance? tdb->hInstance : pdb? pdb->task : 0; + /* If there is no hInstance (32-bit process) return a dummy value + * that must be > 31 + * FIXME: should do this in all cases and fix Win16 callers */ + if (!hInstance) hInstance = 33; /* Close off the handles */ CloseHandle( info.hThread );
diff --git a/loader/task.c b/loader/task.c index 7f3d025..3867770 100644 --- a/loader/task.c +++ b/loader/task.c
@@ -411,7 +411,7 @@ 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 (pTask->flags & TDBF_WIN32) return TRUE; /* If we have a DGROUP/hInstance, use it for 16-bit stack */