1. emacs -q 2. open the attached bug.m file 3. move to the end of second line 4. M-: (smie-auto-fill) Should enter an infinite loop. Debugger entered--Lisp error: (quit) syntax-ppss() smie-indent-comment-inside() run-hook-with-args-until-success(smie-indent-comment-inside) smie-indent-calculate() (let* ((newcol (smie-indent-calculate)) (newgain (- curcol newcol))) (when (> newgain gain) (setq gain newgain) (setq bsf (point)))) (while (<= (setq curcol (current-column)) fc) (let* ((newcol (smie-indent-calculate)) (newgain (- curcol newcol))) (when (> newgain gain) (setq gain newgain) (setq bsf (point)))) (smie-indent-forward-token)) (let ((bsf (point)) (gain 0) curcol) (while (<= (setq curcol (current-column)) fc) (let* ((newcol (smie-indent-calculate)) (newgain (- curcol newcol))) (when (> newgain gain) (setq gain newgain) (setq bsf (point)))) (smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) (newline-and-indent))) (save-excursion (beginning-of-line) (smie-indent-forward-token) (let ((bsf (point)) (gain 0) curcol) (while (<= (setq curcol (current-column)) fc) (let* ((newcol (smie-indent-calculate)) (newgain (- curcol newcol))) (when (> newgain gain) (setq gain newgain) (setq bsf (point)))) (smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) (newline-and-indent)))) (cond ((not (or (nth 8 (save-excursion (syntax-ppss (line-beginning-position)))) (nth 8 (syntax-ppss)))) (save-excursion (beginning-of-line) (smie-indent-forward-token) (let ((bsf (point)) (gain 0) curcol) (while (<= (setq curcol (current-column)) fc) (let* ((newcol ...) (newgain ...)) (when (> newgain gain) (setq gain newgain) (setq bsf ...))) (smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) (newline-and-indent))))) (t (do-auto-fill))) (while (and fc (> (current-column) fc)) (cond ((not (or (nth 8 (save-excursion (syntax-ppss ...))) (nth 8 (syntax-ppss)))) (save-excursion (beginning-of-line) (smie-indent-forward-token) (let ((bsf (point)) (gain 0) curcol) (while (<= (setq curcol ...) fc) (let* (... ...) (when ... ... ...)) (smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) (newline-and-indent))))) (t (do-auto-fill)))) (let ((fc (current-fill-column))) (while (and fc (> (current-column) fc)) (cond ((not (or (nth 8 (save-excursion ...)) (nth 8 (syntax-ppss)))) (save-excursion (beginning-of-line) (smie-indent-forward-token) (let ((bsf ...) (gain 0) curcol) (while (<= ... fc) (let* ... ...) (smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) (newline-and-indent))))) (t (do-auto-fill))))) smie-auto-fill() eval((smie-auto-fill) nil) eval-expression((smie-auto-fill) nil) call-interactively(eval-expression nil nil)