THISFORM.cmdCancel.Visible = .T. DO WHILE NOT lCompleted AND NOT THISFORM.lInterrupted * Some process here DOEVENTS && Tell VFP to check for pending events (mouse click, keyboard entry, etc.) ENDDO THISFORM.cmdCancel.Visible = .F. cmdCancel.Click(): THISFORM.lInterrupted = .T.HTH