In emacs -Q, run: (make-thread (lambda () (make-process :name "name" :command (list "/bin/sh" "-c" "while true; do sleep 1; done")) (while t (thread-yield)))) Then use M-x list-processes. This results in an error as (thread-name thread) returns nil for the thread, since the optional name argument to make-thread hasn't been specified. The attached patch fixes things. diff --git a/lisp/simple.el b/lisp/simple.el index 6bc3bc5304..cf537265bd 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4102,7 +4102,8 @@ list-processes--refresh (null (process-thread p)) (not (fboundp 'thread-name))) "--") ((eq (process-thread p) main-thread) "Main") - ((thread-name (process-thread p))))) + ((thread-name (process-thread p))) + (t "--"))) (cmd (if (memq type '(network serial)) (let ((contact (process-contact p t)))