thisform.oleCommonDialog.CancelError = .T. lcErrorH = ON("ERROR") ON ERROR * rv = thisform.oleCommonDialog.ShowPrinter() ON ERROR &lcErrorH rv = AERROR(laError) if laError(1, 1) = 1429 and laError(1, 6) = 32755 return endifSome may disagree, but this seems more straight forward than trapping for the error in the Error method. Besides, this way, I can put this code into a custom method or procedure file.