diff --git a/code/print.lisp b/code/print.lisp
index 82c96086b7148836df0dc030e528956bec05cc5d..1a207fd63345dbf22df6183135803c710430a222 100644
--- a/code/print.lisp
+++ b/code/print.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/print.lisp,v 1.28 1991/12/03 00:01:57 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/print.lisp,v 1.29 1991/12/05 05:12:22 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -22,7 +22,7 @@
 (export '(*print-readably* *print-escape* *print-pretty* *print-circle*
 	  *print-base* *print-radix* *print-case* *print-gensym* *print-level*
 	  *print-length* *print-array* *print-lines* *print-right-margin*
-	  *print-miser-width* with-standard-io-syntax
+	  *print-miser-width* *print-pprint-dispatch* with-standard-io-syntax
 	  write prin1 print princ pprint
 	  write-to-string prin1-to-string princ-to-string
 	  print-unreadable-object))
@@ -63,11 +63,19 @@
 (defvar *print-gensym* t
   "If true, symbols with no home package are printed with a #: prefix.
   If false, no prefix is printed.")
-
-(defvar *print-lines* nil)
-(defvar *print-right-margin* nil)
-(defvar *print-miser-width* nil)
-(defvar *print-pprint-dispatch* nil)
+(defvar *print-lines* nil
+  "The maximum number of lines to print.  If NIL, unlimited.")
+(defvar *print-right-margin* nil
+  "The position of the right margin in ems.  If NIL, try to determine this
+   from the stream in use.")
+(defvar *print-miser-width* nil
+  "If the remaining space between the current column and the right margin
+   is less than this, then print using ``miser-style'' output.  Miser
+   style conditional newlines are turned on, and all indentations are
+   turned off.  If NIL, never use miser mode.")
+(defvar *print-pprint-dispatch* nil
+  "The pprint-dispatch-table that controls how to pretty print objects.  See
+   COPY-PPRINT-DISPATH, PPRINT-DISPATCH, and SET-PPRINT-DISPATCH.")
 
 (defmacro with-standard-io-syntax (&body body)
   "Bind the reader and printer control variables to values that enable READ
@@ -942,13 +950,14 @@
 	     (not (eq (array-element-type array) t)))
     (error "Arrays of element-type ~S cannot be printed readably."
 	   (array-element-type array)))
-  (write-char #\# stream)
-  (let ((*print-base* 10))
-    (output-integer (array-rank array) stream))
-  (write-char #\A stream)
-  (with-array-data ((data array) (start) (end))
-    (declare (ignore end))
-    (sub-output-array-guts data (array-dimensions array) stream start)))
+  (decend-into (array stream)
+    (write-char #\# stream)
+    (let ((*print-base* 10))
+      (output-integer (array-rank array) stream))
+    (write-char #\A stream)
+    (with-array-data ((data array) (start) (end))
+      (declare (ignore end))
+      (sub-output-array-guts data (array-dimensions array) stream start))))
 
 (defun sub-output-array-guts (array dimensions stream index)
   (declare (simple-vector array) (fixnum index))