I always thought it was silly for Arc to use write for error messages. It seems deliberate, but I'm not sure why. The fix is simple:
$ diff -u old-ac.scm new-ac.scm --- old-ac.scm 2010-05-22 21:32:25.000000000 -0700 +++ new-ac.scm 2010-05-22 21:34:04.000000000 -0700 @@ -1137,7 +1137,7 @@ (on-err (lambda (c) (set! last-condition* c) (display "Error: ") - (write (exn-message c)) + (display (exn-message c)) (newline) (tl2)) (lambda ()