diff --git a/runtime.c b/runtime.c index fad67cf7..0ba26b8c 100644 --- a/runtime.c +++ b/runtime.c @@ -789,7 +789,7 @@ static object _Cyc_write(object x, FILE * port) break; } - for (tmp = cdr(x); tmp && ((closure) tmp)->tag == pair_tag; tmp = cdr(tmp)) { + for (tmp = cdr(x); tmp && !is_value_type(tmp) && ((closure) tmp)->tag == pair_tag; tmp = cdr(tmp)) { if (has_cycle == boolean_t) { if (i++ > 20) break; /* arbitrary number, for now */