I have a small lisp routine that gets the current OSMODE, places multiple arcs, sets OSMODE back to current. When a user hits Esc to exit instead of Enter, the OSMODE variable does not get reset. Any help would be greatly appreciated. This is the Code I have. (setq OR_CURR (getvar "ORTHOMODE")) (setvar "ORTHOMODE" 0) (setq SN_CURR (getvar "SNAPMODE")) (setvar "SNAPMODE" 0) (setq OS_CURR (getvar "OSMODE")) (setvar "OSMODE" 530) (while (setq pt1 (getpoint " Arc Start Point (enter to cancel): ")) (setq pt2 (getpoint pt1 " End Point: ")) (COMMAND "arc" PT1 "e" PT2 "d" PAUSE) ) (setvar "ORTHOMODE" OR_CURR) (setvar "SNAPMODE" SN_CURR) (setvar "OSMODE" OS_CURR) (Princ) Thanks in advance. Dave