diff -r 6b090dfa8c32 -r 11160ea2c8b3 SmallInteger.st --- a/SmallInteger.st Sat Feb 27 22:19:37 2016 +0100 +++ b/SmallInteger.st Sat Feb 27 22:26:31 2016 +0100 @@ -2909,18 +2909,18 @@ if (i & 0x80000000L) { i = i | ~0xFFFFFFFFL; } else { - i = i & 0x7FFFFFFF; + i = i & 0x7FFFFFFFL; } - RETURN (__mkSmallInteger(i)); + RETURN (__MKINT(i)); #endif %}. ^ self primitiveFailed " - 16rFFFFFFFF signExtendedLongValue - 16r80000000 signExtendedLongValue - 16r7FFFFFFF signExtendedLongValue + 16rFFFFFFFF signExtendedLongValue -> -1 + 16r80000000 signExtendedLongValue -> -2147483648 + 16r7FFFFFFF signExtendedLongValue -> 2147483647 " !