signed. It was producing negative fixnums when the high three bits were set (which should result in a 32-bit bignum).