diff --git a/s/cp0.ss b/s/cp0.ss index 200a28d970..bd5b48f433 100644 --- a/s/cp0.ss +++ b/s/cp0.ss @@ -962,7 +962,9 @@ (if (pair? val) (car val) (let ([r (pred?)]) - (set-cdr! a (cons r (cdr a))) + (let ([p (cdr a)]) + (unless (pair? p) + (set-cdr! a (cons r p)))) r)))))])) (define-syntax with-memoize