diff --git a/code/format.lisp b/code/format.lisp
index a3d1adfbca63187ac2a13427a94babdaac8e94ef..31fcc893ec4eb2e55ca18508bc27dffedf3f65a3 100644
--- a/code/format.lisp
+++ b/code/format.lisp
@@ -913,12 +913,12 @@
 (defun format-princ (colon atsign parms)
   (let ((arg (pop-format-arg)))
     (if (null parms)
-	(if arg (princ arg) (write-string (if colon "()" "NIL")))
+	(if (or arg (not colon)) (princ arg) (write-string "()"))
 	(with-format-parameters parms
 	   ((mincol 0) (colinc 1) (minpad 0) (padchar #\space))
-	   (format-write-field (if arg
+	   (format-write-field (if (or arg (not colon))
 				   (princ-to-string arg)
-				   (if colon "()" "NIL"))
+				   "()")
 			       mincol colinc minpad padchar atsign)))))
 
 
@@ -928,12 +928,12 @@
 (defun format-prin1 (colon atsign parms)
   (let ((arg (pop-format-arg)))
     (if (null parms)
-	(if arg (prin1 arg) (write-string (if colon "()" "NIL")))
+	(if (or arg (not colon)) (prin1 arg) (write-string "()"))
 	(with-format-parameters parms
 	   ((mincol 0) (colinc 1) (minpad 0) (padchar #\space))
-	   (format-write-field (if arg
+	   (format-write-field (if (or arg (not colon))
 				   (prin1-to-string arg)
-				   (if colon "()" "NIL"))
+				   "()")
 			       mincol colinc minpad padchar atsign)))))