diff --git a/ice-9/boot-9.scm b/ice-9/boot-9.scm index 6e6f1e1fb..c1a03f000 100644 --- a/ice-9/boot-9.scm +++ b/ice-9/boot-9.scm @@ -690,9 +690,9 @@ (let ((integer-expt integer-expt)) (lambda (z1 z2) (cond ((integer? z2) - (if (>= z2 0) - (integer-expt z1 z2) - (/ 1 (integer-expt z1 (- z2))))) + (if (negative? z2) + (/ 1 (integer-expt z1 (- z2))) + (integer-expt z1 z2))) ((and (real? z2) (real? z1) (>= z1 0)) ($expt z1 z2)) (else