Upgrades strike again! Matt, what SP are you on with SC2009 as it may have been fixed (I'm running SP3 and I have SP downloaded awaiting installation even though SolidCAM have taken down from the website).
One approach to this problem is to set up a global variable for spindle speed (say "true_spin"), transfer the value from spin to to true_spin in @start_of_job and then test for it in @m_feed_spin.
if spin ne true_spin
do the necessary...... finishing off with
true_spin = spin
That shouldn't interefere with other functions in the post.