OK, This DLL stuff is a bit confusing. In dlls/user/user32.spec we have 409 pascal16 InitThreadInput(word word) InitThreadInput16 so the exported name is InitThreadInput, right? Then how come in ./dlls/x11drv/desktop.c we call it like so: win->hmemTaskQ = InitThreadInput16( 0, 0 ); Shouldn't this yield an error? -- Dimi.