diff --git a/space_view3d_copy_attributes.py b/space_view3d_copy_attributes.py
index d8b19b9d36a3ae5e61d8e932fd3ba3ef8c3356ee..fecbcf6450009c1b5a03ef07721eb3f19f923563 100644
--- a/space_view3d_copy_attributes.py
+++ b/space_view3d_copy_attributes.py
@@ -836,8 +836,25 @@ class MESH_OT_CopyFaceSettings(Operator):
         return(retval)
 
 
+classes = (
+    CopySelectedPoseConstraints,
+    VIEW3D_MT_posecopypopup,
+    CopySelectedObjectConstraints,
+    CopySelectedObjectModifiers,
+    VIEW3D_MT_copypopup,
+    MESH_MT_CopyFaceSettings,
+    MESH_MT_CopyImagesFromLayer,
+    MESH_MT_CopyUVCoordsFromLayer,
+    MESH_MT_CopyVertexColorsFromLayer,
+    MESH_OT_CopyFaceSettings,
+    *pose_ops,
+    *object_ops,
+)
+
 def register():
-    bpy.utils.register_module(__name__)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
 
     # mostly to get the keymap working
     kc = bpy.context.window_manager.keyconfigs.addon
@@ -886,7 +903,9 @@ def unregister():
                     if kmi.properties.name == 'VIEW3D_MT_copypopup':
                         km.keymap_items.remove(kmi)
 
-    bpy.utils.unregister_module(__name__)
+    from bpy.utils import unregister_class
+    for cls in classes:
+        unregister_class(cls)
 
 
 if __name__ == "__main__":