Hello, The current implementation of the tramp-compat-file-name-concat from lisp/net/tramp-compat.el fails test fileio-tests/file-name-concat from file test/src/fileio-tests.el for file-name-concat on Emacs where no file-name-concat. #+begin_src elisp (ert-deftest test-tramp-compat-file-name-concat () (should (equal (tramp-compat-file-name-concat "foo" "bar") "foo/bar")) (should (equal (tramp-compat-file-name-concat "foo" "bar") "foo/bar")) (should (equal (tramp-compat-file-name-concat "foo" "bar" "zot") "foo/bar/zot")) (should (equal (tramp-compat-file-name-concat "foo/" "bar") "foo/bar")) (should (equal (tramp-compat-file-name-concat "foo//" "bar") "foo//bar")) (should (equal (tramp-compat-file-name-concat "foo/" "bar/" "zot") "foo/bar/zot")) (should (equal (tramp-compat-file-name-concat "fóo" "bar") "fóo/bar")) (should (equal (tramp-compat-file-name-concat "foo" "bár") "foo/bár")) (should (equal (tramp-compat-file-name-concat "fóo" "bár") "fóo/bár")) (let ((string (make-string 5 ?a))) (should (not (multibyte-string-p string))) (aset string 2 255) (should (not (multibyte-string-p string))) (should (equal (tramp-compat-file-name-concat "fóo" string) "fóo/aa\377aa"))) (should (equal (tramp-compat-file-name-concat "foo") "foo")) (should (equal (tramp-compat-file-name-concat "foo/") "foo/")) (should (equal (tramp-compat-file-name-concat "foo" "") "foo")) (should (equal (tramp-compat-file-name-concat "foo" "" "" "" nil) "foo")) (should (equal (tramp-compat-file-name-concat "" "bar") "bar")) (should (equal (tramp-compat-file-name-concat "" "") ""))) (ert 'test-tramp-compat-file-name-concat) #+end_src