diff --git a/pcl/cmucl-documentation.lisp b/pcl/cmucl-documentation.lisp
index 44d2d30c78bf54c41f2ca43d773a3a2388fa6102..77a044b6ad62ee11475a3e3fcdd776ad227a3977 100644
--- a/pcl/cmucl-documentation.lisp
+++ b/pcl/cmucl-documentation.lisp
@@ -4,7 +4,7 @@
 ;;; the public domain, and is provided 'as is'.
 
 (file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/cmucl-documentation.lisp,v 1.13 2003/07/20 13:55:11 emarsden Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/cmucl-documentation.lisp,v 1.14 2005/07/13 13:43:35 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -52,6 +52,12 @@
 (defmethod (setf documentation) (new-value (x symbol) (doc-type (eql 'function)))
   (setf (info function documentation x) new-value))
 
+(defmethod (setf documentation) (new-value (x function) (doc-type (eql 'function)))
+  (setf (info function documentation x) new-value))
+
+(defmethod (setf documentation) (new-value (x function) (doc-type (eql 't)))
+  (setf (info function documentation x) new-value))
+
 (defmethod (setf documentation) (new-value (x symbol) (doc-type (eql 'setf)))
   (setf (info setf documentation x) new-value))
 
@@ -127,6 +133,20 @@
 (defmethod (setf documentation) (new-value (x symbol) (doc-type (eql 'variable)))
   (setf (info variable documentation x) new-value))
 
+;;; Compiler macros
+(defmethod documentation ((x list) (doc-type (eql 'compiler-macro)))
+  (when (valid-function-name-p x)
+    (if (eq (car x) 'setf)
+	(cdr (assoc doc-type (values (info random-documentation stuff (cadr x)))))
+	(cdr (assoc doc-type (values (info random-documentation stuff x)))))))
+
+(defmethod (setf documentation) (new-value (x list) (doc-type (eql 'compiler-macro)))
+  (when (valid-function-name-p x)
+    (if (eq (car x) 'setf)
+	(set-random-documentation (cadr x) doc-type new-value)
+	(set-random-documentation x doc-type new-value)))
+  new-value)
+
 ;;; CMUCL random documentation. Compiler-macro documentation is stored
 ;;; as random-documentation and handled here.
 (defmethod documentation ((x symbol) (doc-type symbol))