Good catch... this is actually a side-effect of the slightly newer implementation of the text-to-integer runtime code (ttol()). This used to translate "2147483648" into -2147483648, and today returns 2147483647.

You can see this just by printing 2147483648:

? 2147483648 ; will display 2147483647...

Ruud