I thought this would make Emacs complete as you want. But: what files should be shown when hitting TAB? I decided to show only matching files, plus all directories (seems logical, since these may contain matching files). But that gives a bad user experience: When I tried this I thought it would not work because completion did not accept an existing empty directory. Then I saw that it actually was not empty. But it contained only plain files, no subdirectories, and TAB displayed nothing. Quite confusing! > How about the attached patch? | diff --git a/lisp/files.el b/lisp/files.el | index b72f141c0ee..1fe124848b9 100644 | --- a/lisp/files.el | +++ b/lisp/files.el | @@ -817,7 +817,7 @@ non-empty string that was inserted by this function. | If the user exits with an empty minibuffer, this function returns | an empty string. (This can happen only if the user erased the | pre-inserted contents or if `insert-default-directory' is nil.) | -Fourth arg MUSTMATCH non-nil means require existing directory's name. | +Fourth arg MUSTMATCH is passed as-is to `read-file-name', which see. Ok from my side. What do others think about all of this? Thx, Michael.