Hi!

> I haven't had time to see what actually happens in the code, though. However,
> the " if (STRING_MULTIBYTE (file))" looks suspicious as the decoded value needs
> to be checked even for strings like "a". (However, I don't really know what
> STRING_MULTIBYTE does.)

Does removing the STRING_MULTIBYTE test make it work?

Yes, it does:

(file-name-all-completions "a" ".")
("aaosecond.txt")

    -- Anders