**** ** Add a timer in class IF VARTYPE(loXMLObject) = [O] this.StopCykle = .f. this.Timer.Interval = 60000 && 60 sec. lnRetVal = THIS.callreports(loXmlObject,loProposalRecord.Prop_ID,llCover,llUwInfo,llQuote, llFinalRate, llAlgorithm, llAlgoDetail, llLOB, llSchedule, llApp, .F.,cPrintOption,cFileName,lcSendMail,lcUserName) this.Timer.Interval = 0 *** In Timer event this.StopCykle = .t. *** In CallReports Method SCAN IF thisform.StopCykle RETURN .f. ENDIF ..... ENDSCANBut I do not know how this method "CallReports" worked to suggest something more acurate