--- chicken-4.11.0rc1/runtime.c +++ chicken-4.11.0rc1.patched/runtime.c @@ -9236,7 +9236,7 @@ return (C_word)(*(*str - 1)); case C_FIXNUM_BIT: - val = (C_uword)*((*str)++) << 24; /* always big endian */ + val = (C_uword)(signed char)*((*str)++) << 24; /* always big endian */ val |= ((C_uword)*((*str)++) & 0xff) << 16; val |= ((C_uword)*((*str)++) & 0xff) << 8; val |= ((C_uword)*((*str)++) & 0xff);