Thanks. The bug seems to have something to do with/ be triggered by
something in the way that *PRINT-CIRCLE* is handled, e.g.:
(let* ((*print-circle* nil))
(format nil " ~[~:;, ~:*~A Failure~:P~]~[~:;, ~:*~A Expected failure~:P~]~[~:;, ~:*~A Error~:P~]~[~:;, ~:*~A Expected error~:P~]." 1 0 0 0))
doesn't error, but binding *PRINT-CIRCLE* to T does.