PROTECTED FUNCTION CallLocalProg(sProgPath, sProgParams) as Variant LOCAL lRet, lcCLPExp as Exception TRY SET PROCEDURE TO &sProgPath IF NOT ISNULL(sProgParams) lRet = AIMsiMain(&sProgParams) ELSE lRet = AIMsiMain() ENDIF RELEASE PROCEDURE &sProgPath CATCH TO lcCLPExp lsRet = 'Error: blah, blah' RELEASE lcCLPExp ENDTRY RETURN lRet ENDFUNCOne of the parameters will hold data that could contain quotations. Of course this then screws up the parameters being sent.