PROCEDURE Init LPARAMETERS tnInit LOCAL llAbort tnInit=IIF(TYPE('tnInit')<>'N',0,tnInit) && convert parm to numeric IF tnInit > 0 llAbort = .T. IF THIS.QueryDevices()>0 && Query available devices IF THIS.SetDevice(1)=APP_TRUE && Set Initial Device llAbort = .F. ENDIF ENDIF ENDIF RETURN IIF(llAbort,APP_FALSE,APP_TRUE) ENDPROCFWIW, the QueryDevices method takes about 6 seconds to perform, on average. I was trying to make this optional upon instantiating the object. So my first thought was the parameter.