ok, so now printdlg16.c looks like if (lppd->hDevNames != 0) { WORD locks; if((locks = (GlobalFlags16(lppd->hDevNames)&GMEM_LOCKCOUNT))) { WARN("hDevNames has %d locks on it. Unlocking it now\n", locks); while(locks--) GlobalUnlock16(lppd->hDevNames); } } strcpy( di->pDriverPath, "wineps16"); PRINTDLG_CreateDevNames16(&(lppd->hDevNames), di->pDriverPath, pi->pPrinterName, pi->pPortName Right?