diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 14dfb60..e5603d2 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -925,6 +925,14 @@ information is unavailable."
              (_ (default-printer)))
            args))
 
+  (define (system-error-printer port key args default-printer)
+    (apply (case-lambda
+             ((func fmt reasons _) 
+              (format port "System error:\n")
+              (apply format port fmt reasons))
+             (_ (default-printer)))
+           args))
+
   (define (getaddrinfo-error-printer port key args default-printer)
     (format port "In procedure getaddrinfo: ~a" (gai-strerror (car args))))
 
@@ -941,12 +949,13 @@ information is unavailable."
   (set-exception-printer! 'regular-expression-syntax scm-error-printer)
   (set-exception-printer! 'signal scm-error-printer)
   (set-exception-printer! 'stack-overflow scm-error-printer)
-  (set-exception-printer! 'system-error scm-error-printer)
   (set-exception-printer! 'try-again scm-error-printer)
   (set-exception-printer! 'unbound-variable scm-error-printer)
   (set-exception-printer! 'wrong-number-of-args scm-error-printer)
   (set-exception-printer! 'wrong-type-arg scm-error-printer)
 
+  (set-exception-printer! 'system-error system-error-printer)
+
   (set-exception-printer! 'syntax-error syntax-error-printer)
 
   (set-exception-printer! 'getaddrinfo-error getaddrinfo-error-printer))
