Simon,
looking back at your original post reveals that you are using 'flywheels'. Isn't the point of a flywheel is that it has sufficient inertia that it keeps rotating? Hence, expected behaviour !
I sometimes find erratic spin wheel %dd behaviour, which appears to be worse in a faster computer, and it may well be the result of some timing issue. (I have one application where 0 goes to 1 reliably, but I can't 'catch' 2, but have to go back from 3.
I've been reading FTN95.CHM (I often do, it beats counting sheep), and in the description of %dd, its use with %rs is described, through the use of clearwin_string@('CALLBACK_REASON') and processing the reasons 'SPIN_UP' and 'SPIN_DOWN'. I thought that might be worth a try, but then I discovered the reason why an (ignored) non-zero step value has to be given - with a zero step, CW+ is smart and doesn't display the spin controls!
However, there's nothing to stop the programmer from using a proxy value in the display and processing the SPIN_UP and SPIN_DOWN on another variable, matching what is displayed by updating the control contents in the callback.
Or, you can junk %dd, and replace it with two small icons, each with their own callback. I've done this on occasion, and they are just as effective in some cases 'fore and aft' of the control or sometimes above and below it. The meaning is sometimes clearer than with %dd. You can also address the problem with a list box or drop down combo box, especially where the range of choice values is limited, and it is sometimes clearer to do so, e.g. instead of 'Symbol type 1, 2, 3 ...' to give the user 'circle', 'square', triangle' etc.
Eddie