diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index dc8abae327b002a1e83ff9a49af06f2347085208..d720d8525b9829642b49a056fbf8b23491fe9d9e 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -15,7 +15,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, 1),
+    "version": (3, 2, 2),
     '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.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather.py
index 6f68c19eec3e5b4c3757e24754e51856f2697247..3a33c074f8e56d33f07a9c675ed1045e8c879fde 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather.py
@@ -51,9 +51,8 @@ def __gather_scene(blender_scene, export_settings):
         nodes=[]
     )
 
-    for _blender_object in [obj for obj in blender_scene.objects if obj.proxy is None]:
-        if _blender_object.parent is None:
-            blender_object = _blender_object.proxy if _blender_object.proxy else _blender_object
+    for blender_object in blender_scene.objects:
+        if blender_object.parent is None:
             node = gltf2_blender_gather_nodes.gather_node(
                 blender_object,
                 blender_object.library.name if blender_object.library else None,
@@ -70,17 +69,14 @@ def __gather_animations(blender_scene, export_settings):
     animations = []
     merged_tracks = {}
 
-    for _blender_object in blender_scene.objects:
-
-        blender_object = _blender_object.proxy if _blender_object.proxy else _blender_object
+    for blender_object in blender_scene.objects:
 
         # First check if this object is exported or not. Do not export animation of not exported object
         obj_node = gltf2_blender_gather_nodes.gather_node(blender_object,
             blender_object.library.name if blender_object.library else None,
             blender_scene, None, export_settings)
         if obj_node is not None:
-            # Check was done on armature, but use here the _proxy object, because this is where the animation is
-            animations_, merged_tracks = gltf2_blender_gather_animations.gather_animations(_blender_object, merged_tracks, len(animations), export_settings)
+            animations_, merged_tracks = gltf2_blender_gather_animations.gather_animations(blender_object, merged_tracks, len(animations), export_settings)
             animations += animations_
 
     if export_settings['gltf_nla_strips'] is False:
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py
index 890ce0aba9c8149c40b4423ab8ff38addf57aee7..ed9c5f8ce364aff7d38fff2827568e5d2388a210 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channel_target.py
@@ -86,13 +86,11 @@ def __gather_node(channels: typing.Tuple[bpy.types.FCurve],
 
         if isinstance(blender_bone, bpy.types.PoseBone):
             if export_settings["gltf_def_bones"] is False:
-                obj = blender_object.proxy if blender_object.proxy else blender_object
-                return gltf2_blender_gather_joints.gather_joint(obj, blender_bone, export_settings)
+                return gltf2_blender_gather_joints.gather_joint(blender_object, blender_bone, export_settings)
             else:
                 bones, _, _ = gltf2_blender_gather_skins.get_bone_tree(None, blender_object)
                 if blender_bone.name in [b.name for b in bones]:
-                    obj = blender_object.proxy if blender_object.proxy else blender_object
-                    return gltf2_blender_gather_joints.gather_joint(obj, blender_bone, export_settings)
+                    return gltf2_blender_gather_joints.gather_joint(blender_object, blender_bone, export_settings)
 
     return gltf2_blender_gather_nodes.gather_node(blender_object,
         blender_object.library.name if blender_object.library else None,
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py
index 726104f4dcd3c0bda8365e456fbdcac09b47427b..004e8d64671dd3fac6a7a037ad64c48dd07c7619 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_channels.py
@@ -112,8 +112,7 @@ def gather_animation_channels(blender_action: bpy.types.Action,
 
 
         # Retrieve channels for drivers, if needed
-        obj_driver = blender_object.proxy if blender_object.proxy else blender_object
-        drivers_to_manage = gltf2_blender_gather_drivers.get_sk_drivers(obj_driver)
+        drivers_to_manage = gltf2_blender_gather_drivers.get_sk_drivers(blender_object)
         for obj, fcurves in drivers_to_manage:
             channel = __gather_animation_channel(
                 fcurves,
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py
index caf142174106980d25ae6b474279e47a6d5f6dbb..bd0ce30591c62ecc861298c18d0d5d4c0fd7e661 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_animation_sampler_keyframes.py
@@ -174,8 +174,7 @@ def get_bone_matrix(blender_object_if_armature: typing.Optional[bpy.types.Object
 
 
         # If some drivers must be evaluated, do it here, to avoid to have to change frame by frame later
-        obj_driver = blender_object_if_armature.proxy if blender_object_if_armature.proxy else blender_object_if_armature
-        drivers_to_manage = get_sk_drivers(obj_driver)
+        drivers_to_manage = get_sk_drivers(blender_object_if_armature)
         for dr_obj, dr_fcurves in drivers_to_manage:
             vals = get_sk_driver_values(dr_obj, frame, dr_fcurves)
 
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
index 13c347dc6a4f02b62ffe793f67f9451476c1c18d..d94b8c079b40475400ba2f03a1391f63964798c5 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
@@ -166,15 +166,13 @@ def __gather_children(blender_object, blender_scene, export_settings):
     children = []
     only_bone_children = True # True by default, will be set to False if needed
     # standard children
-    for _child_object in blender_object.children:
-        if _child_object.parent_bone:
+    for child_object in blender_object.children:
+        if child_object.parent_bone:
             # this is handled further down,
             # as the object should be a child of the specific bone,
             # not the Armature object
             continue
 
-        child_object = _child_object.proxy if _child_object.proxy else _child_object
-
         node = gather_node(child_object,
             child_object.library.name if child_object.library else None,
             blender_scene, None, export_settings)
@@ -187,7 +185,7 @@ def __gather_children(blender_object, blender_scene, export_settings):
             if dupli_object.parent is not None:
                 continue
             if dupli_object.type == "ARMATURE":
-                continue # There is probably a proxy
+                continue # There is probably a proxy (no more existing)
             node = gather_node(dupli_object,
                 dupli_object.library.name if dupli_object.library else None,
                 blender_scene, blender_object.name, export_settings)