diff --git a/scheme/base.sld b/scheme/base.sld index 136c493f..51890350 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -1047,6 +1047,10 @@ " Cyc_check_num(data, num); if (obj_is_int(num)) { return_closcall1(data, k, obj_int2obj( abs( obj_obj2int(num)))); + } else if (is_object_type(num) && type_of(num) == bignum_tag){ + alloc_bignum(data, bn); + mp_abs(&bignum_value(num), &bignum_value(bn)); + return_closcall1(data, k, bn); } else { make_double(d, fabs(((double_type *)num)->value)); return_closcall1(data, k, &d);