diff --git a/code/format.lisp b/code/format.lisp
index 24cc4e19a96e93bdde2445cb18e614feb0bf214b..0f4bad87b3619b1bc4bcc2506efe4261056810b7 100644
--- a/code/format.lisp
+++ b/code/format.lisp
@@ -945,13 +945,12 @@
     (let ((char (pop-format-arg)))
       (unless (characterp char)
 	(format-error "Argument must be a character"))
-      (cond ((not colon)
-	     (cond (atsign
-		    (prin1 char))
-		   (t
-		    (format-print-named-character char nil))))
+      (cond (colon
+	     (format-print-named-character char))
+	    (atsign
+	     (prin1 char))
 	    (t
-	     (format-print-named-character char t))))))
+	     (write-char char))))))
 
 (defun format-print-named-character (char)
   (let* ((name (char-name char)))