diff --git a/add_curve_aceous_galore.py b/add_curve_aceous_galore.py
index fcc2750260c3d4a8de5a32c47b872d3c344aaf54..ad82601191ae02e8b82063b5daef32ead986afd0 100644
--- a/add_curve_aceous_galore.py
+++ b/add_curve_aceous_galore.py
@@ -1134,9 +1134,13 @@ def Curveaceous_galore_button(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_curve_add.append(Curveaceous_galore_button)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_curve_add.remove(Curveaceous_galore_button)
 
 if __name__ == "__main__":
diff --git a/add_curve_torus_knots.py b/add_curve_torus_knots.py
index 53c0afed8ee23fad4410a2db2bc16f1b144c6ff9..95eace803474ab885cb8a49babb61806fb7af251 100644
--- a/add_curve_torus_knots.py
+++ b/add_curve_torus_knots.py
@@ -234,9 +234,13 @@ def torus_knot_plus_button(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_curve_add.append(torus_knot_plus_button)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_curve_add.remove(torus_knot_plus_button)
 
 if __name__ == "__main__":
diff --git a/add_mesh_3d_function_surface.py b/add_mesh_3d_function_surface.py
index 322ae7073ebe49f9ae313f29c5457cfdd2bec3e5..5716e832fd2ecd984ce44dae3d67ec82f05de3b7 100644
--- a/add_mesh_3d_function_surface.py
+++ b/add_mesh_3d_function_surface.py
@@ -514,12 +514,16 @@ def menu_func_xyz(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     # Add menus to the "Add Mesh" menu
     space_info.INFO_MT_mesh_add.append(menu_func_z)
     space_info.INFO_MT_mesh_add.append(menu_func_xyz)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # Remove menus from the "Add Mesh" menu.
     space_info.INFO_MT_mesh_add.remove(menu_func_z)
     space_info.INFO_MT_mesh_add.remove(menu_func_xyz)
diff --git a/add_mesh_BoltFactory/__init__.py b/add_mesh_BoltFactory/__init__.py
index 256c4f8104b8f3e0bb2b642e5d21b2b4201aed7d..bca635739a4941213819c86c2ce6a40e405d6a66 100644
--- a/add_mesh_BoltFactory/__init__.py
+++ b/add_mesh_BoltFactory/__init__.py
@@ -46,10 +46,14 @@ def add_mesh_bolt_button(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_mesh_add.append(add_mesh_bolt_button)
     #bpy.types.VIEW3D_PT_tools_objectmode.prepend(add_mesh_bolt_button) #just for testing
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_mesh_add.remove(add_mesh_bolt_button)
     #bpy.types.VIEW3D_PT_tools_objectmode.remove(add_mesh_bolt_button) #just for testing
     
diff --git a/add_mesh_ant_landscape.py b/add_mesh_ant_landscape.py
index f0a38b328d63a28ad3762a9b787211bbcf1f2382..822759d4f43d15064ef70b8b561a437aaf4ff37e 100644
--- a/add_mesh_ant_landscape.py
+++ b/add_mesh_ant_landscape.py
@@ -806,9 +806,13 @@ def menu_func_landscape(self, context):
     self.layout.operator(landscape_add.bl_idname, text="Landscape", icon="PLUGIN")
 
 def register():
+    bpy.utils.register_module(__name__)
+
     space_info.INFO_MT_mesh_add.append(menu_func_landscape)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     space_info.INFO_MT_mesh_add.remove(menu_func_landscape)
 
 if __name__ == "__main__":
diff --git a/add_mesh_extras.py b/add_mesh_extras.py
index 423677f42af79127a30297bc761d66664a87c9fe..c3ee6d3d48567f67b41e37c51553b41d7325290c 100644
--- a/add_mesh_extras.py
+++ b/add_mesh_extras.py
@@ -530,11 +530,15 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     # Add "Extras" menu to the "Add Mesh" menu
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # Remove "Extras" menu from the "Add Mesh" menu.
     space_info.INFO_MT_mesh_add.remove(menu_func)
 
diff --git a/add_mesh_gears.py b/add_mesh_gears.py
index a623ce48f76c9e26e5bae26e736e3a3fffa629f0..19c658f9a0915fa4d916374669f75b35acefd597 100644
--- a/add_mesh_gears.py
+++ b/add_mesh_gears.py
@@ -820,11 +820,15 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     # Add "Gears" entry to the "Add Mesh" menu.
     bpy.types.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # Remove "Gears" entry from the "Add Mesh" menu.
     bpy.types.INFO_MT_mesh_add.remove(menu_func)
 
diff --git a/add_mesh_gemstones.py b/add_mesh_gemstones.py
index 3cd37157a169ccf8fd627250cea36cf86c78e0c5..a10af48346b2f201eeb2da20842d17fb19ddd422 100644
--- a/add_mesh_gemstones.py
+++ b/add_mesh_gemstones.py
@@ -356,11 +356,15 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     # Add "Gemstones" menu to the "Add Mesh" menu
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # Remove "Gemstones" menu from the "Add Mesh" menu.
     space_info.INFO_MT_mesh_add.remove(menu_func)
 
diff --git a/add_mesh_pipe_joint.py b/add_mesh_pipe_joint.py
index 168bd59764cf85b9c520c14cc90e9d13c9817437..8e7c96757e9114d5cd33061df556dad937296097 100644
--- a/add_mesh_pipe_joint.py
+++ b/add_mesh_pipe_joint.py
@@ -1135,11 +1135,15 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     # Add "Pipe Joints" menu to the "Add Mesh" menu
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # Remove "Pipe Joints" menu from the "Add Mesh" menu.
     space_info.INFO_MT_mesh_add.remove(menu_func)
 
diff --git a/add_mesh_solid.py b/add_mesh_solid.py
index 5bf081283e13eee2415fe58873a0d3b294e397d2..037375430524c75061196c8801dc27d4c9b2cc23 100644
--- a/add_mesh_solid.py
+++ b/add_mesh_solid.py
@@ -804,9 +804,13 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     space_info.INFO_MT_mesh_add.remove(menu_func)
       
 if __name__ == "__main__":
diff --git a/add_mesh_twisted_torus.py b/add_mesh_twisted_torus.py
index e33cf9c173bfc57bf8b8b09c1a7047c7a89b7f4a..779d2ab05214089ea4b3fe3d778db979aec93c56 100644
--- a/add_mesh_twisted_torus.py
+++ b/add_mesh_twisted_torus.py
@@ -259,10 +259,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_mesh_add.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/animation_add_corrective_shape_key.py b/animation_add_corrective_shape_key.py
index 49967b10343b15fdcacb22b1b1cb7fa15ab6d80a..41d34aaeeb8f5c5008f26b26ef00233b7a2ce752 100644
--- a/animation_add_corrective_shape_key.py
+++ b/animation_add_corrective_shape_key.py
@@ -490,8 +490,12 @@ def modifiers_draw(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.MESH_MT_shape_key_specials.append( vgroups_draw )
     bpy.types.DATA_PT_modifiers.append( modifiers_draw )
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
diff --git a/animation_animall.py b/animation_animall.py
index ae6e885c381cebc1502e6f261ccb74f1c1963a4d..bea815214b9f65b1f6eeb22398bc16d4203ad534 100644
--- a/animation_animall.py
+++ b/animation_animall.py
@@ -277,9 +277,13 @@ class ANIM_OT_clear_animation_animall(bpy.types.Operator):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     pass
     
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
     
 if __name__ == "__main__":
diff --git a/animation_rotobezier.py b/animation_rotobezier.py
index d7d44c05bdda761fc954cf2d1aec889349ae47ea..a7f8f2229ba045a5c6002d07b49627c3073ace6d 100644
--- a/animation_rotobezier.py
+++ b/animation_rotobezier.py
@@ -369,9 +369,13 @@ class CURVE_OT_toggle_draw_rotobezier(bpy.types.Operator):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     pass
     
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
     
 if __name__ == "__main__":
diff --git a/curve_simplify.py b/curve_simplify.py
index 8533769dd159d26a5e163bb9a74fae39ade4d8f5..55aed13c02507f53e2090272c9aef45db6516218 100644
--- a/curve_simplify.py
+++ b/curve_simplify.py
@@ -584,9 +584,13 @@ class CURVE_OT_simplify(bpy.types.Operator):
 #### REGISTER ###################################
 #################################################
 def register():
+    bpy.utils.register_module(__name__)
+
     pass
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
 
 if __name__ == "__main__":
diff --git a/development_icon_get.py b/development_icon_get.py
index 10d8b4dabaec5445f65f652724f53abf0ae8c409..b0ed6cd95f70ab7d510c6141be9a3c3ea9c89640 100644
--- a/development_icon_get.py
+++ b/development_icon_get.py
@@ -211,6 +211,8 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.Scene.icon_props = bpy.props.PointerProperty(type = IconProps)
     IconProps.console = bpy.props.BoolProperty(name='Show System Icons',
         description='Display the Icons in the console header', default=False)
@@ -231,6 +233,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     if bpy.context.scene.get('icon_props') != None:
         del bpy.context.scene['icon_props']
     try:
diff --git a/game_engine_save_as_runtime.py b/game_engine_save_as_runtime.py
index beacbbc24c083c2e1f6d043f18dacb0b1f8c4cf2..ede30efb9b887f57e1b88c9395f5b21724b32799 100644
--- a/game_engine_save_as_runtime.py
+++ b/game_engine_save_as_runtime.py
@@ -207,10 +207,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_export.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_export.remove(menu_func)
 
 
diff --git a/io_anim_bvh/__init__.py b/io_anim_bvh/__init__.py
index a5c57d9b66ed6bbde70f50d9bae6f42aabe3038f..96e034f0949159ec9c26a99e81bde9dc539fb8e8 100644
--- a/io_anim_bvh/__init__.py
+++ b/io_anim_bvh/__init__.py
@@ -121,11 +121,15 @@ def menu_func_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func_import)
     bpy.types.INFO_MT_file_export.append(menu_func_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func_import)
     bpy.types.INFO_MT_file_export.remove(menu_func_export)
 
diff --git a/io_anim_camera.py b/io_anim_camera.py
index 1a34fdc27b68a8d756f22866cd0051fdcb028107..592c59445560d4348076d36c085f55b1f38aa5ef 100644
--- a/io_anim_camera.py
+++ b/io_anim_camera.py
@@ -155,10 +155,14 @@ def menu_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_export.append(menu_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_export.remove(menu_export)
 
 
diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py
index 0a7d5d8ff3751c0daecf46fd84660c6ecc93e6f2..b6aecccb350e428e8ebe4e43adaa0ca84e09ec37 100644
--- a/io_coat3D/__init__.py
+++ b/io_coat3D/__init__.py
@@ -46,6 +46,8 @@ from bpy.props import *
 
     
 def register():
+    bpy.utils.register_module(__name__)
+
 
     bpy.coat3D = dict()
     bpy.coat3D['active_coat'] = ''
@@ -276,6 +278,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     import bpy
 
     del bpy.types.Object.coat3D
diff --git a/io_coat3D/coat.py b/io_coat3D/coat.py
index 48a2c996ecba8c0cc2046f3c2ea87aaff6e21ca7..fc989dd6c2b749873512c7e576a36869648962b4 100644
--- a/io_coat3D/coat.py
+++ b/io_coat3D/coat.py
@@ -519,9 +519,13 @@ class SCENE_OT_deltex(bpy.types.Operator):
         return('FINISHED')
 
 def register():
+    bpy.utils.register_module(__name__)
+
     pass
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
 
 if __name__ == "__main__":
diff --git a/io_convert_image_to_mesh_img/__init__.py b/io_convert_image_to_mesh_img/__init__.py
index f6e5f522bde7a58d7b09e65a55b7f7a17de5d5d4..290e97e9fcb1e935589c8bc049951532b901c538 100644
--- a/io_convert_image_to_mesh_img/__init__.py
+++ b/io_convert_image_to_mesh_img/__init__.py
@@ -119,9 +119,13 @@ def menu_import(self, context):
     self.layout.operator(ImportHiRISEIMGDTM.bl_idname, text="HiRISE DTM from PDS IMG (*.IMG)")
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_import)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_import)
 
 if __name__ == "__main__":
diff --git a/io_export_directx_x.py b/io_export_directx_x.py
index 9bb5410ca2db9a8054fe98d58b388bedf8b50634..1cda639988fa9d49dfb0ef8ae1a15160be36a093 100644
--- a/io_export_directx_x.py
+++ b/io_export_directx_x.py
@@ -1225,10 +1225,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_export.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_export.remove(menu_func)
 
 
diff --git a/io_export_pc2.py b/io_export_pc2.py
index a8a468cbd4d50765f268bf1326ab93e26f0a0c89..a739def8429fa832d6d5e0130ee9edfc245ebe2b 100644
--- a/io_export_pc2.py
+++ b/io_export_pc2.py
@@ -188,10 +188,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_export.append(menu_func)
     #bpy.types.VIEW3D_PT_tools_objectmode.prepend(menu_func)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_export.remove(menu_func)
     #bpy.types.VIEW3D_PT_tools_objectmode.remove(menu_func)
     
diff --git a/io_export_unreal_psk_psa.py b/io_export_unreal_psk_psa.py
index 14fcd9d18e5ce70ab81e04bd5c644fcf29387ab9..b7b8287941e741c600370b94526f8ed30e0765b4 100644
--- a/io_export_unreal_psk_psa.py
+++ b/io_export_unreal_psk_psa.py
@@ -1781,9 +1781,13 @@ def menu_func(self, context):
     self.layout.operator(ExportUDKAnimData.bl_idname, text="Skeleton Mesh / Animation Data (.psk/.psa)").filepath = default_path
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_export.append(menu_func)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_export.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/io_import_gimp_image_to_scene.py b/io_import_gimp_image_to_scene.py
index de1f0686b11c66a18bd3e6e6da9e760ef1653a55..bf1ed44b64f70e94262689fb765defac639c77f4 100644
--- a/io_import_gimp_image_to_scene.py
+++ b/io_import_gimp_image_to_scene.py
@@ -659,10 +659,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func)
 
 
diff --git a/io_import_images_as_planes.py b/io_import_images_as_planes.py
index 3156d29394b76af9ace0671de98aa72bb7b98970..558744756e59415eb467679d0fd339e2c8717f7a 100644
--- a/io_import_images_as_planes.py
+++ b/io_import_images_as_planes.py
@@ -340,8 +340,12 @@ def import_images_button(self, context):
     self.layout.operator(IMPORT_OT_image_to_plane.bl_idname, text="Images as Planes", icon='PLUGIN')
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(import_images_button)
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(import_images_button)
 if __name__ == '__main__':
     register()
diff --git a/io_import_scene_dxf.py b/io_import_scene_dxf.py
index 0f58cd59a2dcc4b886ea43cd7a679ce6b9e7130a..ce45ece41fd9f4e138aa28eca2576749573f74b4 100644
--- a/io_import_scene_dxf.py
+++ b/io_import_scene_dxf.py
@@ -2507,9 +2507,13 @@ def menu_func(self, context):
     self.layout.operator(IMPORT_OT_autocad_dxf.bl_idname, text="Autocad (.dxf)")
 
 def register():
+    bpy.utils.register_module(__name__)
+
      bpy.types.INFO_MT_file_import.append(menu_func)
  
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/io_import_scene_lwo.py b/io_import_scene_lwo.py
index 73eda01694cc8e4bddd3b9322071090d904e8940..2181cf4b0902c827eada9cfb5f6ce26c49a3e3ab 100644
--- a/io_import_scene_lwo.py
+++ b/io_import_scene_lwo.py
@@ -1244,10 +1244,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/io_import_scene_mhx.py b/io_import_scene_mhx.py
index 3b74484631fdf6fe79eed768bc6ef7f43a260132..c27fc3d1ff44043890a7f72974dab3ec1cd0eedd 100644
--- a/io_import_scene_mhx.py
+++ b/io_import_scene_mhx.py
@@ -2452,9 +2452,13 @@ def menu_func(self, context):
     self.layout.operator(IMPORT_OT_makehuman_mhx.bl_idname, text="MakeHuman (.mhx)...")
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/io_import_scene_unreal_psk.py b/io_import_scene_unreal_psk.py
index d6686fc27a07f2331c22581d577026b433b4e917..a504bc3d7cd14f0f9d8cd4657fab6f6ab4e258bc 100644
--- a/io_import_scene_unreal_psk.py
+++ b/io_import_scene_unreal_psk.py
@@ -602,9 +602,13 @@ def menu_func(self, context):
     self.layout.operator(IMPORT_OT_psk.bl_idname, text="Skeleton Mesh (.psk)")
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func)
     
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/io_mesh_ply/__init__.py b/io_mesh_ply/__init__.py
index c653a778fa63cf226a4620e52a12d2aea98b4be1..f889a0cc673fc4a7af62fa8950ccb183438c27b6 100644
--- a/io_mesh_ply/__init__.py
+++ b/io_mesh_ply/__init__.py
@@ -116,11 +116,15 @@ def menu_func_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func_import)
     bpy.types.INFO_MT_file_export.append(menu_func_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func_import)
     bpy.types.INFO_MT_file_export.remove(menu_func_export)
 
diff --git a/io_mesh_raw/__init__.py b/io_mesh_raw/__init__.py
index 4c23d88ad433d086d0eec9a2fb572af3b1547623..d5a0bd8699f7c82b31a13c610fce7a9fc3eb19ae 100644
--- a/io_mesh_raw/__init__.py
+++ b/io_mesh_raw/__init__.py
@@ -53,10 +53,14 @@ def menu_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_import)
     bpy.types.INFO_MT_file_export.append(menu_export)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_import)
     bpy.types.INFO_MT_file_export.remove(menu_export)
 
diff --git a/io_mesh_stl/__init__.py b/io_mesh_stl/__init__.py
index 8d5297fdfb163d1cece6508b7dea1bb6c517d61c..d46e6036d0d3aa4a7ef679451b78d7de94002113 100644
--- a/io_mesh_stl/__init__.py
+++ b/io_mesh_stl/__init__.py
@@ -135,11 +135,15 @@ def menu_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_import)
     bpy.types.INFO_MT_file_export.append(menu_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_import)
     bpy.types.INFO_MT_file_export.remove(menu_export)
 
diff --git a/io_scene_3ds/__init__.py b/io_scene_3ds/__init__.py
index 54840921e73df764a25f60faa568964afcb15616..4840a9000fdf343c8cb4ef007a6bdd2411156985 100644
--- a/io_scene_3ds/__init__.py
+++ b/io_scene_3ds/__init__.py
@@ -86,11 +86,15 @@ def menu_func_import(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func_import)
     bpy.types.INFO_MT_file_export.append(menu_func_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func_import)
     bpy.types.INFO_MT_file_export.remove(menu_func_export)
 
diff --git a/io_scene_fbx/__init__.py b/io_scene_fbx/__init__.py
index 3ac33162c670b2f0daaf18344c95f42a513eee0e..49f14a947e35cb6385a209ba519951522624f75f 100644
--- a/io_scene_fbx/__init__.py
+++ b/io_scene_fbx/__init__.py
@@ -114,10 +114,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_export.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_export.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/io_scene_m3/__init__.py b/io_scene_m3/__init__.py
index 2b72b9d6ea2004606ffba1cbefc1cc4891187661..a6cd763ddbc2e3e6af7f35be400c35f9c9aa0c7a 100644
--- a/io_scene_m3/__init__.py
+++ b/io_scene_m3/__init__.py
@@ -63,11 +63,15 @@ def menu_import(self, context):
 #        text="Raw Faces (.raw)").filepath = default_path
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_import)
 #    bpy.types.INFO_MT_file_export.append(menu_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_import)
 #    bpy.types.INFO_MT_file_export.remove(menu_export)
 
diff --git a/io_scene_obj/__init__.py b/io_scene_obj/__init__.py
index a7407870e06c0a587e9bc742d26dc8fb37025535..137c56d7d1b96f163eb879635d7adde49ffbd7ef 100644
--- a/io_scene_obj/__init__.py
+++ b/io_scene_obj/__init__.py
@@ -124,11 +124,15 @@ def menu_func_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func_import)
     bpy.types.INFO_MT_file_export.append(menu_func_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func_import)
     bpy.types.INFO_MT_file_export.remove(menu_func_export)
 
diff --git a/io_scene_x3d/__init__.py b/io_scene_x3d/__init__.py
index 565addd8d60f076180b968283846c3071757a867..b6ba16c8b666208723ced50c3798dfe790510dcd 100644
--- a/io_scene_x3d/__init__.py
+++ b/io_scene_x3d/__init__.py
@@ -84,11 +84,15 @@ def menu_func_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func_import)
     bpy.types.INFO_MT_file_export.append(menu_func_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func_import)
     bpy.types.INFO_MT_file_export.remove(menu_func_export)
 
diff --git a/io_shape_mdd/__init__.py b/io_shape_mdd/__init__.py
index 4dcb97e9cb6a409b7404bc1808df6defc3d0a3bd..f6e404a9badc3e960a39a6d626a3b2ac8a61ef3d 100644
--- a/io_shape_mdd/__init__.py
+++ b/io_shape_mdd/__init__.py
@@ -120,11 +120,15 @@ def menu_func_export(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_file_import.append(menu_func_import)
     bpy.types.INFO_MT_file_export.append(menu_func_export)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_file_import.remove(menu_func_import)
     bpy.types.INFO_MT_file_export.remove(menu_func_export)
 
diff --git a/mesh_relax.py b/mesh_relax.py
index a4823e4e198179e8352df234af07a60a38df1beb..c979c60fbc1460b6d33a46d6da1ffb399f20042a 100644
--- a/mesh_relax.py
+++ b/mesh_relax.py
@@ -117,10 +117,14 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.VIEW3D_MT_edit_mesh_specials.append(menu_func)
     bpy.types.VIEW3D_MT_edit_mesh_vertices.append(menu_func)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.VIEW3D_MT_edit_mesh_specials.remove(menu_func)
     bpy.types.VIEW3D_MT_edit_mesh_vertices.remove(menu_func)
 
diff --git a/mesh_surface_sketch.py b/mesh_surface_sketch.py
index df6f9f7fe17a1892ba05894e5e4f9461ae81b7a4..cddf616bd2ecbb34ac055a81eb992c93d4302d65 100644
--- a/mesh_surface_sketch.py
+++ b/mesh_surface_sketch.py
@@ -787,6 +787,8 @@ class GPENCIL_OT_surfsk_strokes_to_curves(bpy.types.Operator):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.Scene.SURFSK_edges_U = bpy.props.IntProperty(name="Cross", description="Number of edge rings crossing the strokes (perpendicular to strokes direction)", default=10, min=0, max=100000)
     bpy.types.Scene.SURFSK_edges_V = bpy.props.IntProperty(name="Follow", description="Number of edge rings following the strokes (parallel to strokes direction)", default=10, min=0, max=100000)
     bpy.types.Scene.SURFSK_precision = bpy.props.IntProperty(name="Precision", description="Precision level of the surface calculation", default=4, min=0, max=100000)
@@ -801,6 +803,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     del bpy.types.Scene.SURFSK_edges_U
     del bpy.types.Scene.SURFSK_edges_V
     del bpy.types.Scene.SURFSK_precision
diff --git a/object_add_chain.py b/object_add_chain.py
index bd6696e48298974f1b19c96831cfa6def3b2b0d5..edc3278d19a80911d8b1065dad310ffc79822925 100644
--- a/object_add_chain.py
+++ b/object_add_chain.py
@@ -143,11 +143,15 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     # Add "Chain" menu to the "Add Mesh" menu.
     bpy.types.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # Remove "Chain" menu from the "Add Mesh" menu.
     bpy.types.INFO_MT_mesh_add.remove(menu_func)
 
diff --git a/object_animrenderbake.py b/object_animrenderbake.py
index 05eb587778a48f68a8c2de749f3e57dac3cca01e..e791cd13129e421a6eb4f52b9a95a51f9c105d07 100644
--- a/object_animrenderbake.py
+++ b/object_animrenderbake.py
@@ -158,6 +158,8 @@ def draw_animrenderbake(self, context):
     sub.prop(rd, "bake_bias")
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.Scene.animrenderbake_start = IntProperty(
         name="Start",
         description="Start frame of the animated bake",
@@ -174,6 +176,8 @@ def register():
     panel.draw = draw_animrenderbake
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # restore original panel draw function
     bpy.types.RENDER_PT_bake.draw = bpy.types.RENDER_PT_bake.old_draw
     del bpy.types.RENDER_PT_bake.old_draw
diff --git a/object_cloud_gen.py b/object_cloud_gen.py
index 2ff1452268f23252a140fbb625aac5e907f212df..d2ea30b6531ba5bcd5a962578b152069190f82be 100644
--- a/object_cloud_gen.py
+++ b/object_cloud_gen.py
@@ -721,6 +721,8 @@ class GenerateCloud(bpy.types.Operator):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.Scene.cloudparticles = BoolProperty(
         name="Particles",
         description="Generate Cloud as Particle System",
@@ -743,6 +745,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     del bpy.types.Scene.cloudparticles
     del bpy.types.Scene.cloud_type
 
diff --git a/object_fracture/__init__.py b/object_fracture/__init__.py
index b678724bc5f04b4a6a1a09f7a547f3c96387f4c7..3379d75fd571fa3e3bc8bdf65f3a4654b4a9f800 100644
--- a/object_fracture/__init__.py
+++ b/object_fracture/__init__.py
@@ -66,11 +66,15 @@ def menu_func(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     # Add the "add fracture objects" menu to the "Add" menu
     space_info.INFO_MT_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     # Remove "add fracture objects" menu from the "Add" menu.
     space_info.INFO_MT_add.remove(menu_func)
 
diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index 46ae34c0920784da07a96552f307baf4c1e86095..55a03b8843b15d6cee4194d1e5114db63cba9064 100644
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -46,6 +46,8 @@ else:
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     Scene = bpy.types.Scene
 
     # File Options
@@ -403,6 +405,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     import bpy
     Scene = bpy.types.Scene
     Mat = bpy.types.Material
diff --git a/render_renderfarmfi.py b/render_renderfarmfi.py
index 5f32ae9d2f9970859aa35fa11eecef84a797f237..67abcc14f0a8721e5adb849de5dadef5a78bd7a9 100644
--- a/render_renderfarmfi.py
+++ b/render_renderfarmfi.py
@@ -957,9 +957,13 @@ def menu_export(self, context):
     self.layout.operator(RenderfarmFi.bl_idname, text=RenderfarmFi.bl_label)
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.INFO_MT_render.append(menu_export)
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     bpy.types.INFO_MT_render.remove(menu_export)
 
 if __name__ == "__main__":
diff --git a/rigify/__init__.py b/rigify/__init__.py
index 20821f9d3c94881fb2e045d88a8c3b1368e440fc..cf0ed06a3ceebbf85cf2694ae31a00902bbd9066 100644
--- a/rigify/__init__.py
+++ b/rigify/__init__.py
@@ -127,6 +127,8 @@ for rig in rig_list:
 ##### REGISTER #####
 
 def register():
+    bpy.utils.register_module(__name__)
+
     bpy.types.PoseBone.rigify_type = bpy.props.StringProperty(name="Rigify Type", description="Rig type for this bone.")
     bpy.types.PoseBone.rigify_parameters = bpy.props.CollectionProperty(type=RigifyParameters)
 
@@ -139,6 +141,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     del bpy.types.PoseBone.rigify_type
     del bpy.types.PoseBone.rigify_parameters
 
diff --git a/rigify/metarig_menu.py b/rigify/metarig_menu.py
index 65dbbce96a244c687b6768507ceafe4d50a59aff..54fae2d5e42fef7e579b8458a9101c8cd17d4f62 100644
--- a/rigify/metarig_menu.py
+++ b/rigify/metarig_menu.py
@@ -46,11 +46,15 @@ menu_func = (lambda self, context: self.layout.operator(AddHuman.bl_idname,
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     #bpy.types.register(AddHuman)
     bpy.types.INFO_MT_armature_add.append(menu_func)
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     #bpy.types.unregister(AddHuman)
     bpy.types.INFO_MT_armature_add.remove(menu_func)
 
diff --git a/rigify/ui.py b/rigify/ui.py
index a27d319bcc497d19bed488aa685eb5022fb2c3eb..827b0fc20ca58f180ab91d87859ceb9df139c884 100644
--- a/rigify/ui.py
+++ b/rigify/ui.py
@@ -233,6 +233,8 @@ class Sample(bpy.types.Operator):
 #import space_info  # ensure the menu is loaded first
 
 def register():
+    bpy.utils.register_module(__name__)
+
     #bpy.types.register(DATA_PT_rigify_buttons)
     #bpy.types.register(BONE_PT_rigify_buttons)
     #bpy.types.register(Generate)
@@ -243,6 +245,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     #bpy.types.unregister(DATA_PT_rigify_buttons)
     #bpy.types.unregister(BONE_PT_rigify_buttons)
     #bpy.types.unregister(Generate)
diff --git a/space_view3d_3d_navigation.py b/space_view3d_3d_navigation.py
index ea8347e54a1ba4aec508ffd24af29555a551b823..bc6459ae6f55d25a7c33500f5b34e83af2a0250b 100644
--- a/space_view3d_3d_navigation.py
+++ b/space_view3d_3d_navigation.py
@@ -87,10 +87,14 @@ class VIEW3D_PT_3dnavigationPanel(bpy.types.Panel):
         row.operator("view3d.snap_cursor_to_selected", text="Cursor to Selected")
 
 # register the class
-def register(): 
+def register():
+    bpy.utils.register_module(__name__)
+ 
     pass 
 
-def unregister(): 
+def unregister():
+    bpy.utils.unregister_module(__name__)
+ 
     pass 
 
 if __name__ == "__main__": 
diff --git a/space_view3d_align_tools.py b/space_view3d_align_tools.py
index 63fe0676d47bde16c9809d265637f6b283b71867..6b805f1ef559e30d86481551b6ff16ba84c5b069 100644
--- a/space_view3d_align_tools.py
+++ b/space_view3d_align_tools.py
@@ -329,9 +329,13 @@ class AlignScaleZOperator(bpy.types.Operator):
 
 ## registring
 def register():
+    bpy.utils.register_module(__name__)
+
     pass
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
 
 if __name__ == "__main__":
diff --git a/space_view3d_copy_attributes.py b/space_view3d_copy_attributes.py
index a3b39144ccea6aa776cbfc00c2bed378d50a37b3..ce30d55a2b7165fac589a910f8c01eaa878196f6 100644
--- a/space_view3d_copy_attributes.py
+++ b/space_view3d_copy_attributes.py
@@ -729,6 +729,8 @@ def _add_tface_buttons(self, context):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     ''' mostly to get the keymap working '''
     kc = bpy.context.window_manager.keyconfigs['Blender']
     km = kc.keymaps.get("Object Mode")
@@ -758,6 +760,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     ''' mostly to remove the keymap '''
     kms = bpy.context.window_manager.keyconfigs['Blender'].keymaps['Pose']
     for item in kms.items:
diff --git a/space_view3d_materials_utils.py b/space_view3d_materials_utils.py
index 7923a42137e9dfd40d0d710df7da9f7106038624..3f4d6ac558f91e359a13fae845f5b8853ce0508d 100644
--- a/space_view3d_materials_utils.py
+++ b/space_view3d_materials_utils.py
@@ -673,11 +673,15 @@ class VIEW3D_MT_select_material(bpy.types.Menu):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     km = bpy.context.window_manager.keyconfigs.default.keymaps['3D View']
     kmi = km.items.new('wm.call_menu', 'Q', 'PRESS')
     kmi.properties.name = "VIEW3D_MT_master_material"
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     km = bpy.context.window_manager.keyconfigs.default.keymaps['3D View']
     for kmi in km.items:
         if kmi.idname == 'wm.call_menu':
diff --git a/space_view3d_math_vis/__init__.py b/space_view3d_math_vis/__init__.py
index 544454b889763645333a1000287ebd0e3de43a53..02bbf3d9fce7f699d40866e90589f596ed786809 100644
--- a/space_view3d_math_vis/__init__.py
+++ b/space_view3d_math_vis/__init__.py
@@ -92,10 +92,14 @@ def console_hook():
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     import console_python
     console_python.execute.hooks.append((console_hook, ()))
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     import console_python
     console_python.execute.hooks.remove((console_hook, ()))
 
diff --git a/space_view3d_panel_measure.py b/space_view3d_panel_measure.py
index 8fd007125c05ed3fa75973f9978558b45061ec01..bff9a8dab208600202e49ed0af94e906524a32e7 100644
--- a/space_view3d_panel_measure.py
+++ b/space_view3d_panel_measure.py
@@ -1100,10 +1100,14 @@ class VIEW3D_PT_measure(bpy.types.Panel):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     pass
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
 
 if __name__ == "__main__":
diff --git a/space_view3d_spacebar_menu.py b/space_view3d_spacebar_menu.py
index 21949d9563f9b2cf8f2df5830b07aaa7ff0660e1..0b300c43182687b1823c532e1311f0af7d81dedb 100644
--- a/space_view3d_spacebar_menu.py
+++ b/space_view3d_spacebar_menu.py
@@ -1499,12 +1499,16 @@ class VIEW3D_MT_undoS(bpy.types.Menu):
         layout.operator("ed.redo", icon='TRIA_RIGHT')
 
 def register():
+    bpy.utils.register_module(__name__)
+
     km = bpy.context.window_manager.keyconfigs.default.keymaps['3D View']
     kmi = km.items.new('wm.call_menu', 'SPACE', 'PRESS')
     kmi.properties.name = "VIEW3D_MT_Space_Dynamic_Menu"
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     km = bpy.context.window_manager.keyconfigs.default.keymaps['3D View']
     for kmi in km.items:
         if kmi.idname == 'wm.call_menu':
diff --git a/system_blend_info.py b/system_blend_info.py
index a1885ec1bc54f265c60dd4e17cb0b41d7f2ab74d..ecaaee83a034eafe5d259604730a879fb0e1c712 100644
--- a/system_blend_info.py
+++ b/system_blend_info.py
@@ -198,9 +198,13 @@ class OBJECT_PT_blendinfo(bpy.types.Panel):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     pass
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     pass
 
 if __name__ == "__main__":
diff --git a/system_property_chart.py b/system_property_chart.py
index 8917d413f7f784dffd2691abbcfb504883b56e94..61d0b2c67f79cb5a7aeae394e647b2ca04ab5f9d 100644
--- a/system_property_chart.py
+++ b/system_property_chart.py
@@ -219,6 +219,8 @@ class CopyPropertyChart(bpy.types.Operator):
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     Scene = bpy.types.Scene
 
     for cls in View3DEditProps, SequencerEditProps:
@@ -232,6 +234,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     Scene = bpy.types.Scene
 
     for cls in View3DEditProps, SequencerEditProps:
diff --git a/text_editor_api_navigator.py b/text_editor_api_navigator.py
index 8cf8bfd500eb580518172c7d47f3ad8fe2c93bd7..fa82d54b894aaf35dec29b95ba2c0fca160bf49b 100644
--- a/text_editor_api_navigator.py
+++ b/text_editor_api_navigator.py
@@ -700,6 +700,8 @@ def unregister_keymaps():
 
 
 def register():
+    bpy.utils.register_module(__name__)
+
     class ApiNavProps(bpy.types.IDPropertyGroup):
         """
         Fake module like class.
@@ -716,6 +718,8 @@ def register():
 
 
 def unregister():
+    bpy.utils.unregister_module(__name__)
+
     unregister_keymaps()
     delProperties()