that's a feature, not a bug. Spinner has default minValue=0 and maxValue=100. If user enters value that is out of [min, max] range, spinner restores valid value on focus lost by setting it to min or max value accordingly.
Ah. You're dead right.
I mustn't have set the maxValue correctly.