--- a/src/c/hash.d
+++ b/src/c/hash.d
@@ -193,6 +193,9 @@
 		return hash_word(h, (cl_index)ecl_double_float(x));
 	case t_bignum:
 		/* FIXME! We should be more precise here! */
+		return hash_string(h, (unsigned char*)x->big.big_num->_mp_d,
+				   abs(x->big.big_num->_mp_size) *
+				   sizeof(mp_limb_t));
 	case t_ratio:
 		h = _hash_equalp(0, h, x->ratio.num);
 		return _hash_equalp(0, h, x->ratio.den);