diff --git a/src/clos/streams.lsp b/src/clos/streams.lsp index 1e875dd8d..c99f95f6d 100644 --- a/src/clos/streams.lsp +++ b/src/clos/streams.lsp @@ -611,10 +611,11 @@ (let ((x (si::package-lock "COMMON-LISP" nil))) (loop for cl-symbol in '#.+conflicting-symbols+ with gray-package = (find-package "GRAY") - do (let ((gray-symbol (find-symbol (symbol-name cl-symbol) gray-package))) - (setf (fdefinition cl-symbol) (fdefinition gray-symbol)) - (unintern gray-symbol gray-package) - (import cl-symbol gray-package) - (export cl-symbol gray-package))) + do (unless (typep (fdefinition cl-symbol) 'generic-function) + (let ((gray-symbol (find-symbol (symbol-name cl-symbol) gray-package))) + (setf (fdefinition cl-symbol) (fdefinition gray-symbol)) + (unintern gray-symbol gray-package) + (import cl-symbol gray-package) + (export cl-symbol gray-package)))) (si::package-lock "COMMON-LISP" x) nil))