diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index 5e3dce0fef9974261b6e7e1e7921531c4ddfa88c..cbd3bee22192023c75689327b3ed2263196ef60f 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -4,7 +4,7 @@
 bl_info = {
     'name': 'glTF 2.0 format',
     'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
-    "version": (3, 2, 39),
+    "version": (3, 2, 40),
     'blender': (3, 1, 0),
     'location': 'File > Import-Export',
     'description': 'Import-Export as glTF 2.0',
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_samplers.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_samplers.py
index 143fcceac4fc083a8a7eba8bd1fa82e825294ca3..1ee98a29f91348568da0c681b21d7854e3149095 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_samplers.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_samplers.py
@@ -391,8 +391,9 @@ def __gather_output(channels: typing.Tuple[bpy.types.FCurve],
                 parent_uuid = export_settings['vtree'].nodes[export_settings['vtree'].nodes[blender_obj_uuid].bones[bone.name]].parent_uuid
                 if parent_uuid is not None and export_settings['vtree'].nodes[parent_uuid].blender_type == VExportNode.BONE:
                     # export bone is not at root of armature neither
+                    blender_bone_parent = export_settings['vtree'].nodes[parent_uuid].blender_bone
                     correction_matrix_local = (
-                        bone.parent.bone.matrix_local.inverted_safe() @
+                        blender_bone_parent.bone.matrix_local.inverted_safe() @
                         bone.bone.matrix_local
                     )
                 else: