I thought I saw an error here when list-directory with a directory (not file) glob (ex: ~/Project/emacs/*/) is followed by another list-directory, but I think the actual issue is that the default directory in the first case is set to something that doesn't exist, which messes up call-process in the second invocation of list-directory. The error I saw was: Debugger entered--Lisp error: (file-missing "Setting current directory" "No > such file or directory" "/home/chadpbrown/Project/emacs/*/") > call-process("ls" nil t nil "-CF" "--" > "/home/chadpbrown/Project/emacs/src/") > insert-directory("/home/chadpbrown/Project/emacs/src/" "-CF" nil t) > list-directory("~/Project/emacs/src/" nil) > funcall-interactively(list-directory "~/Project/emacs/src/" nil) > call-interactively(list-directory nil nil) > command-execute(list-directory) I'm not sure it's worth the overhead to fix this. I'm testing a small change that replaced default-directory in list-directory (lisp/files.el:7387) with (if (file-exists-p default-directory) default-directory user-emacs-directory) ..but it feels like a hack? ~Chad