Juerg, I just wanted to thank you again for provideing me will your external function error handler. To save time editing a lot of routines, I added another function ARCH:F_CLEAN to list all of the setvars to restore. Works great. The following code modified from: ;;;Juerg Menzi ;;;MENZI ENGINEERING GmbH, Switzerland ;;;[URL]http://www.menziengineering.ch[/URL] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Error Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ARCH:ERROR (Msg) (if (and Msg (not (eq Msg "quit / exit abort"))) (princ Msg) ) (ARCH:F_R-VAR) (princ " *** ///////// Program CANCELLED ///////// *** ") (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Clean Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ARCH:F_CLEAN (Lst) (or Me:Aco (setq Me:Aco (vlax-get-acad-object))) (or Me:Acd (setq Me:Acd (vla-get-ActiveDocument Me:Aco))) (vla-StartUndoMark Me:Acd) (setq Me:Oer *Error* *Error* ARCH:ERROR ) (mapcar '(lambda (l) (if (not (assoc l Me:Var)) (setq Me:Var (append Me:Var (list (cons l (getvar l))))) ) ) Lst ) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; F_S-VAR Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ARCH:F_S-VAR () (ARCH:F_CLEAN (list '"APERTURE" '"ATTDIA" '"ATTREQ" '"BLIPMODE" '"CECOLOR" '"CLAYER" '"CELTYPE" '"CMDECHO" '"DIMSCALE" '"DRAGMODE" '"EXPERT" '"FILEDIA" '"FILLETRAD" '"GRIDMODE" '"HIGHLIGHT" '"LUNITS" '"MENUECHO" '"MIRRTEXT" '"OFFSETDIST" '"ORTHOMODE" '"OSMODE" '"PICKBOX" '"PLINEWID" '"REGENMODE" '"SNAPMODE" '"SNAPUNIT" '"SNAPBASE" '"SNAPANG" '"SNAPSTYL" '"TEXTEVAL" ;;'"TEXTSTYLE" ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; F_R-VAR Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun ARCH:F_R-VAR () (if Me:Var (mapcar '(lambda (l) (setvar (car l) (cdr l))) Me:Var) ) (setq *Error* Me:Oer Me:Oer nil Me:Var nil ) (vla-EndUndoMark Me:Acd) (princ) )