diff --git a/compiler/macros.lisp b/compiler/macros.lisp
index 47ea0157b6f3e7e9bf27acb4a31749e1e25d7bdc..5644b31025233684fc43fb51f44e6e89de1b1962 100644
--- a/compiler/macros.lisp
+++ b/compiler/macros.lisp
@@ -829,14 +829,14 @@
 ;;;    Start and finish the the printing of a defprinter function.
 ;;;
 (defun start-defprinter (name stream indent object)
-  (declare (symbol name) (stream stream) (type index indent))
+  (declare (symbol name) (stream stream) (type (or index null) indent))
   (declare (ignore indent))
   (format stream "#<~S ~X" name (system:%primitive make-fixnum object)))
 ;;;
 (defun finish-defprinter (name stream indent)
-  (declare (symbol name) (stream stream) (type index indent))
+  (declare (symbol name) (stream stream) (type (or index null) indent))
   (declare (ignore name))
-  (if *defprint-pretty*
+  (if (and *defprint-pretty* indent)
       (format stream ">~%~VT" indent)
       (format stream ">")))