Hi, Comint file-name completion in inferior-sml-mode throws this error: Debugger entered--Lisp error: (wrong-type-argument sequencep 34) length(34) (zerop (length filesuffix)) (if (zerop (length filesuffix)) nil (list :exit-function (lambda (_s status) (when (eq status (quote finished)) (if (looking-at (regexp-quote filesuffix)) (goto-char (match-end 0)) (insert filesuffix)))))) (unless (zerop (length filesuffix)) (list :exit-function (lambda (_s status) (when (eq status (quote finished)) (if (looking-at (regexp-quote filesuffix)) (goto-char (match-end 0)) (insert filesuffix)))))) (nconc (list filename-beg filename-end (lambda (string pred action) (let ((completion-ignore-case read-file-name-completion-ignore-case) (completion-ignored-extensions comint-completion-fignore)) (complete-with-action action table string pred)))) (unless (zerop (length filesuffix)) (list :exit-function (lambda (_s status) (when (eq status (quote finished)) (if (looking-at (regexp-quote filesuffix)) (goto-char (match-end 0)) (insert filesuffix))))))) (let* ((filesuffix (cond ((not comint-completion-addsuffix) "") ((stringp comint-completion-addsuffix) comint-completion-addsuffix) ((not (consp comint-completion-addsuffix)) " ") (t (cdr comint-completion-addsuffix)))) (filename (comint--match-partial-filename)) (filename-beg (if filename (match-beginning 0) (point))) (filename-end (if filename (match-end 0) (point))) (table (completion-table-with-quoting (function comint-completion-file-name-table) comint-unquote-function comint-requote-function))) (nconc (list filename-beg filename-end (lambda (string pred action) (let ((completion-ignore-case read-file-name-completion-ignore-case) (completion-ignored-extensions comint-completion-fignore)) (complete-with-action action table string pred)))) (unless (zerop (length filesuffix)) (list :exit-function (lambda (_s status) (when (eq status (quote finished)) (if (looking-at ...) (goto-char ...) (insert filesuffix)))))))) comint--complete-file-name-data() comint-filename-completion() run-hook-with-args-until-success(comint-filename-completion) comint-completion-at-point() completion--capf-wrapper(comint-completion-at-point all) run-hook-wrapped(completion--capf-wrapper comint-completion-at-point all) completion-at-point() call-interactively(completion-at-point nil nil) Which is caused by this line in comint: ╭──────── #3156 ─ /home/vitoshka/TVC/emacs/lisp/comint.el ── │ (unless (zerop (length filesuffix)) ╰──────── #3156 ─ That is, filesuffix is expected to be a string. Instead, it receives ?\" (aka 34), which is set in sml-mode.el: ╭──────── #1203 ─ /home/vitoshka/Dropbox/ELPA/sml-mode-6.2/sml-mode.el ── │ ;; Make TAB add a " rather than a space at the end of a file name. │ (set (make-local-variable 'comint-completion-addsuffix) '(?/ . ?\")) ╰──────── #1204 ─ I assume this was working before, when sml-mode was written. This simple patch solves it.