My $0.02
(setq olderr *error*
*error* (lambda (msg)
(while (> (getvar "CMDACTIVE") 0)
(command))
(and (/= msg "quit / exit abort")
(princ (strcat "\nError: *** " msg " *** ")))
(and (= (logand (getvar "UNDOCTL") 8) 8)
(command "_.UNDO" "_END" "_.U"))
(nw_rmd))) ;;; My Mode Reset
-David