diff --git a/scripts/modules/bpy/utils/__init__.py b/scripts/modules/bpy/utils/__init__.py index a49aef8a905..a2ed24835cc 100644 --- a/scripts/modules/bpy/utils/__init__.py +++ b/scripts/modules/bpy/utils/__init__.py @@ -829,17 +829,16 @@ def register_submodule_factory(module_name, submodule_names): def register(): nonlocal module module = __import__(name=module_name, fromlist=submodule_names) - submodules[:] = [getattr(module, name) for name in submodule_names] - for mod in submodules: + submodules[:] = [(getattr(module, mod_name), mod_name) for mod_name in submodule_names] + for mod, _mod_name in submodules: mod.register() def unregister(): from sys import modules - for mod in reversed(submodules): + for mod, mod_name in reversed(submodules): mod.unregister() - name = mod.__name__ - delattr(module, name.partition(".")[2]) - del modules[name] + delattr(module, mod_name) + del modules[mod.__name__] submodules.clear() return register, unregister