diff --git a/lisp/net/tramp-archive.el b/lisp/net/tramp-archive.el index e690687413..a8a1851abb 100644 --- a/lisp/net/tramp-archive.el +++ b/lisp/net/tramp-archive.el @@ -343,8 +343,12 @@ tramp-archive-file-name-handler (tramp-archive-run-real-handler operation args))))))) ;;;###autoload -(defalias - 'tramp-archive-autoload-file-name-handler #'tramp-autoload-file-name-handler) +(progn (defun tramp-archive-autoload-file-name-handler (operation &rest args) + "Load Tramp archive file name handler, and perform OPERATION." + (if tramp-archive-enabled + (let ((tramp-archive-autoload t)) + tramp-archive-autoload ; Silence byte compiler. + (apply #'tramp-autoload-file-name-handler operation args))))) ;;;###autoload (progn (defun tramp-register-archive-file-name-handler () diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 570294e8b9..a81dbaaf69 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -2444,6 +2444,8 @@ tramp-completion-file-name-handler (tramp-unload-file-name-handlers) (if tramp-mode (let ((default-directory temporary-file-directory)) + (if (bound-and-true-p tramp-archive-autoload) + (load "tramp-archive" 'noerror 'nomessage)) (load "tramp" 'noerror 'nomessage))) (apply operation args)))