I can't discover what is wrong with this routine. Thank you for helping me to get at this point. (defun c:talign () ; i will make local later (setq gp (getpoint " Specify a point:")) (setq gx (car gp)) (prompt " Select Text to align") (setq gt (ssget '((0 . "MTEXT,TEXT" )))) (setq n (sslength gt)) (setq index 0) (repeat n (setq b1 (entget (ssname gt index))) (setq index (1+ index)) (setq b (assoc 0 b1)) (if (or (= "TEXT" (cdr b)) (= "MTEXT" (cdr b))) (progn (setq c (cadr (assoc 10 b1))) (setq b2 (subst gx c)) (entmod b2) ) ) ) (princ) ) (princ) John