I don't know if that is the perfect fix at the moment but it does work
If it works then it really is perfect. If you have some information on what causes this behavior (now or later), let me know. I need to reproduce it myslef to really understand what is going on.
About the spherical interpolation, I was answering to SiW but you might find that usefull anyway. There are two ways to interpolate rotation between keyframes : linearily or using the quaternions' interpolation technique called slerp. Whatever.... What you need to know is that spherical interpolation is more precise than linear but has a cost in performance terms. The default technique in Ogre is linear. In most cases, you won't see the difference. However, if some bones start to rotate strangeley, suddenly rotating in the wrong way for a short time then rotating in the good way again, then you might want to change.
This is done in the code using SetDefaultRotationInterpolationMode() or on a per animation basis using Animation::SetRotationInterpolationMode().
Well, the functions names might be a little off but you get the idea.