diff --git a/lisp/emacs-lisp/pkg.el b/lisp/emacs-lisp/pkg.el index 9045c4b8514..58596de43c8 100644 --- a/lisp/emacs-lisp/pkg.el +++ b/lisp/emacs-lisp/pkg.el @@ -503,8 +503,11 @@ returned if found. Value is nil if no package with the given name is found. " (if (packagep package) package - (let ((name (pkg--stringify-name package "package name"))) - (gethash name *package-registry*)))) + (let* ((name (pkg--stringify-name package "package name")) + (local (assoc name (package-local-nicknames *package*)))) + (if local + (cdr local) + (gethash name *package-registry*))))) ;;;###autoload (defun delete-package (package) diff --git a/src/pkg.c b/src/pkg.c index b1d79824de8..3ad828d4ba5 100644 --- a/src/pkg.c +++ b/src/pkg.c @@ -143,9 +143,12 @@ pkg_find_package (Lisp_Object name) = XPACKAGE (Vearmuffs_package)->local_nicknames; if (!NILP (local_nicknames)) { - const Lisp_Object entry = CALLN (Fassoc, name, local_nicknames); + const Lisp_Object entry = Fassoc (name, local_nicknames, Qnil); if (!NILP (entry)) - return XCDR (entry); + { + eassert (PACKAGEP (XCDR (entry))); + return XCDR (entry); + } } return Fgethash (name, Vpackage_registry, Qnil);