Keyframe interpolation instability
Quaternions must be "normalized" in order to represent an actual orientation.  That means 1=w*w+x*x+y*y+z*z.  Fortunately this gets handled for you, and much of the time the result is close enough to what you want that you don't even notice a problem.

However, if the animation system interpolates a value where all of them are zero, then it probably gets changed to &lt;1,0,0,0> .  The only way to solve that problem is to add a keyframe that has the intermediate orientation, preferably in a normalized form.