diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_animation_bone.py b/io_scene_gltf2/blender/imp/gltf2_blender_animation_bone.py
index bdafae5ecd47154dde353a433fd446aeb9d83045..e05f1f64741713850c8b1f2fcb8d35ec70ed8dab 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_animation_bone.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_animation_bone.py
@@ -100,12 +100,20 @@ class BlenderBoneAnim():
 
         if animation.samplers[channel.sampler].interpolation == "CUBICSPLINE":
             # TODO manage tangent?
-            quat_keyframes = (
+            quat_keyframes = [
                 quaternion_gltf_to_blender(values[idx * 3 + 1])
                 for idx in range(0, len(keys))
-            )
+            ]
         else:
-            quat_keyframes = (quaternion_gltf_to_blender(vals) for vals in values)
+            quat_keyframes = [quaternion_gltf_to_blender(vals) for vals in values]
+
+        # Manage antipodal quaternions
+        # (but is not suffisant, we also convert quaternion --> euler --> quaternion)
+        for i in range(1, len(quat_keyframes)):
+            if quat_keyframes[i].dot(quat_keyframes[i-1]) < 0:
+                quat_keyframes[i] = -quat_keyframes[i]
+
+
         if not node.parent:
             final_rots = [
                 bind_rotation.inverted() @ quat_keyframe