diff --git a/add_curve_aceous_galore.py b/add_curve_aceous_galore.py
index cb7d0b69a338d2c0508c9771b1fff26f3cc274fb..e466fb53d812a6faf06aa6f9a05d9fe08243fbc5 100644
--- a/add_curve_aceous_galore.py
+++ b/add_curve_aceous_galore.py
@@ -1105,25 +1105,14 @@ class Curveaceous_galore(bpy.types.Operator):
 ################################################################################
 ##### REGISTER #####
 
-Curveaceous_galore_button = (lambda self, context: self.layout.operator
-            (Curveaceous_galore.bl_idname, text="curvatures gallore", icon="PLUGIN"))
+def Curveaceous_galore_button(self, context):
+    self.layout.operator(Curveaceous_galore.bl_idname, text="curvatures gallore", icon="PLUGIN")
 
-classes = [
-Curveaceous_galore
-    ]
 
 def register():
-    register = bpy.types.register
-    for cls in classes:
-        register(cls)
-
     bpy.types.INFO_MT_curve_add.append(Curveaceous_galore_button)
 
 def unregister():
-    unregister = bpy.types.unregister
-    for cls in classes:
-        unregister(cls)
-
     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 9dc6ac8ec471b24b03c0622534c83ec7cff603f6..0a79b5a62e10bcbc21899c6d6800269c322e3420 100644
--- a/add_curve_torus_knots.py
+++ b/add_curve_torus_knots.py
@@ -338,25 +338,14 @@ class torus_knot_plus(bpy.types.Operator):
 ################################################################################
 ##### REGISTER #####
 
-torus_knot_plus_button = (lambda self, context: self.layout.operator
-            (torus_knot_plus.bl_idname, text="Torus Knot +", icon="PLUGIN"))
+def torus_knot_plus_button(self, context):
+    self.layout.operator(torus_knot_plus.bl_idname, text="Torus Knot +", icon="PLUGIN")
 
-classes = [
-torus_knot_plus
-    ]
 
 def register():
-    register = bpy.types.register
-    for cls in classes:
-        register(cls)
-
     bpy.types.INFO_MT_curve_add.append(torus_knot_plus_button)
 
 def unregister():
-    unregister = bpy.types.unregister
-    for cls in classes:
-        unregister(cls)
-
     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 79a01ae49c3ac2c0e34c3a8c7c3b59e51a0025aa..a8db8d36f1bfabd55707dce0a54a9cb574be9e94 100644
--- a/add_mesh_3d_function_surface.py
+++ b/add_mesh_3d_function_surface.py
@@ -615,31 +615,20 @@ class AddXYZFunctionSurface(bpy.types.Operator):
 import space_info
 
 # Define "3D Function Surface" menu
-menu_func_z = (lambda self, context: self.layout.operator(
-    AddZFunctionSurface.bl_idname,
-    text="Z Function Surface",
-    icon="PLUGIN"))
-menu_func_xyz = (lambda self, context: self.layout.operator(
-    AddXYZFunctionSurface.bl_idname,
-    text="X,Y,Z Function Surface",
-    icon="PLUGIN"))
+def menu_func_z(self, context):
+    self.layout.operator(AddZFunctionSurface.bl_idname, text="Z Function Surface", icon="PLUGIN")
 
+def menu_func_xyz(self, context):
+    self.layout.operator(AddXYZFunctionSurface.bl_idname, text="X,Y,Z Function Surface", icon="PLUGIN")
 
-def register():
-    # Register the operators/menus.
-    bpy.types.register(AddZFunctionSurface)
-    bpy.types.register(AddXYZFunctionSurface)
 
+def register():
     # 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():
-    # Unregister the operators/menus.
-    bpy.types.unregister(AddZFunctionSurface)
-    bpy.types.unregister(AddXYZFunctionSurface)
-
     # 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 94e7df69dd5c5dd9147829b9a6bf4e61c854cda1..7492ce38d431d5e52b09651ce321ec7f569a141f 100644
--- a/add_mesh_BoltFactory/__init__.py
+++ b/add_mesh_BoltFactory/__init__.py
@@ -28,31 +28,28 @@ bl_addon_info = {
     'category': 'Add Mesh'}
 
 import bpy
-from add_mesh_BoltFactory.Boltfactory import add_mesh_bolt
+
+try:
+    init_data
+
+    reload(Boltfactory)
+except:
+    from add_mesh_BoltFactory import Boltfactory
+
+init_data = True
 
 ################################################################################
 ##### REGISTER #####
 
-add_mesh_bolt_button = (lambda self, context: self.layout.operator
-            (add_mesh_bolt.bl_idname, text="BOLT", icon="PLUGIN"))
+def add_mesh_bolt_button(self, context):
+    self.layout.operator(Boltfactory.add_mesh_bolt.bl_idname, text="BOLT", icon="PLUGIN")
 
-classes = [
-add_mesh_bolt
-    ]
 
 def register():
-    register = bpy.types.register
-    for cls in classes:
-        register(cls)
-
     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():
-    unregister = bpy.types.unregister
-    for cls in classes:
-        unregister(cls)
-
     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 7bb2f677f3fe64c5ccc7db1c025b50317b68da30..c7b986a4f3e3aeb55d3fbb43ff4cbe5774fa145c 100644
--- a/add_mesh_ant_landscape.py
+++ b/add_mesh_ant_landscape.py
@@ -749,18 +749,14 @@ class landscape_add(bpy.types.Operator):
 import space_info
 
 # Define "Landscape" menu
-menu_func_landscape = (lambda self, context: self.layout.operator(
-    landscape_add.bl_idname,
-    text="Landscape",
-    icon="PLUGIN"))
+def menu_func_landscape(self, context):
+    self.layout.operator(landscape_add.bl_idname, text="Landscape", icon="PLUGIN")
 
 def register():
-    bpy.types.register(landscape_add)
     space_info.INFO_MT_mesh_add.append(menu_func_landscape)
 
 def unregister():
-    bpy.types.unregister(landscape_add)
     space_info.INFO_MT_mesh_add.remove(menu_func_landscape)
 
 if __name__ == "__main__":
-    register()
\ No newline at end of file
+    register()
diff --git a/add_mesh_extras.py b/add_mesh_extras.py
index ccf74a4ad0804e34c03ff03f3561d6ffaf8eb619..27f37531fa0b5365c1fe017b8a3a72d2bf7ed38e 100644
--- a/add_mesh_extras.py
+++ b/add_mesh_extras.py
@@ -758,32 +758,16 @@ class INFO_MT_mesh_extras_add(bpy.types.Menu):
 import space_info
 
 # Define "Gemstones" menu
-menu_func = (lambda self,
-    context: self.layout.menu("INFO_MT_mesh_extras_add", icon="PLUGIN"))
+def menu_func(self, context):
+    self.layout.menu("INFO_MT_mesh_extras_add", icon="PLUGIN")
 
 
 def register():
-    # Register the operators/menus.
-    bpy.types.register(AddSqorus)
-    bpy.types.register(AddWedge)
-    bpy.types.register(AddSpindle)
-    bpy.types.register(AddStar)
-    bpy.types.register(AddTrapezohedron)
-    bpy.types.register(INFO_MT_mesh_extras_add)
-
     # Add "Gemstones" menu to the "Add Mesh" menu
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
-    # Unregister the operators/menus.
-    bpy.types.unregister(AddSqorus)
-    bpy.types.unregister(AddWedge)
-    bpy.types.unregister(AddSpindle)
-    bpy.types.unregister(AddStar)
-    bpy.types.unregister(AddTrapezohedron)
-    bpy.types.unregister(INFO_MT_mesh_extras_add)
-
     # Remove "Gemstones" 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 92d4e125d684af6ec114d27588f674041bf930f2..9e1991baf034581b6578e1adde096a26697ca8a2 100644
--- a/add_mesh_gears.py
+++ b/add_mesh_gears.py
@@ -924,24 +924,16 @@ class INFO_MT_mesh_gears_add(bpy.types.Menu):
 
 
 # Define "Gears" menu
-menu_func = (lambda self,
-    context: self.layout.menu("INFO_MT_mesh_gears_add", icon="PLUGIN"))
+def menu_func(self, context):
+    self.layout.menu("INFO_MT_mesh_gears_add", icon="PLUGIN")
 
 
 def register():
-    bpy.types.register(AddGear)
-    bpy.types.register(AddWormGear)
-    bpy.types.register(INFO_MT_mesh_gears_add)
-
     # Add "Gears" entry to the "Add Mesh" menu.
     bpy.types.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
-    bpy.types.unregister(AddGear)
-    bpy.types.unregister(AddWormGear)
-    bpy.types.unregister(INFO_MT_mesh_gears_add)
-
     # 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 0b27829eacac74ad952334da0a5e6594acbbd81c..ad0177e60085287da3591f9fb90219b5a532a772 100644
--- a/add_mesh_gemstones.py
+++ b/add_mesh_gemstones.py
@@ -452,27 +452,18 @@ class INFO_MT_mesh_gemstones_add(bpy.types.Menu):
 # Register all operators and panels
 import space_info
 
+
 # Define "Gemstones" menu
-menu_func = (lambda self,
-    context: self.layout.menu("INFO_MT_mesh_gemstones_add", icon="PLUGIN"))
+def menu_func(self, context):
+    self.layout.menu("INFO_MT_mesh_gemstones_add", icon="PLUGIN")
 
 
 def register():
-    # Register the operators/menus.
-    bpy.types.register(AddDiamond)
-    bpy.types.register(AddGem)
-    bpy.types.register(INFO_MT_mesh_gemstones_add)
-
     # Add "Gemstones" menu to the "Add Mesh" menu
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
-    # Unregister the operators/menus.
-    bpy.types.unregister(AddDiamond)
-    bpy.types.unregister(AddGem)
-    bpy.types.unregister(INFO_MT_mesh_gemstones_add)
-
     # 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 97f7d2e5b9755b2b7dd2625cf37afcd4212ca3de..f0f173006407586eacd7eb75a28b561b673bc048 100644
--- a/add_mesh_pipe_joint.py
+++ b/add_mesh_pipe_joint.py
@@ -1267,32 +1267,16 @@ class INFO_MT_mesh_pipe_joints_add(bpy.types.Menu):
 import space_info
 
 # Define "Pipe Joints" menu
-menu_func = (lambda self,
-    context: self.layout.menu("INFO_MT_mesh_pipe_joints_add", icon="PLUGIN"))
+def menu_func(self, context):
+    self.layout.menu("INFO_MT_mesh_pipe_joints_add", icon="PLUGIN")
 
 
 def register():
-    # Register the operators/menus.
-    bpy.types.register(AddElbowJoint)
-    bpy.types.register(AddTeeJoint)
-    bpy.types.register(AddWyeJoint)
-    bpy.types.register(AddCrossJoint)
-    bpy.types.register(AddNJoint)
-    bpy.types.register(INFO_MT_mesh_pipe_joints_add)
-
     # Add "Pipe Joints" menu to the "Add Mesh" menu
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
-    # Unregister the operators/menus.
-    bpy.types.unregister(AddElbowJoint)
-    bpy.types.unregister(AddTeeJoint)
-    bpy.types.unregister(AddWyeJoint)
-    bpy.types.unregister(AddCrossJoint)
-    bpy.types.unregister(AddNJoint)
-    bpy.types.unregister(INFO_MT_mesh_pipe_joints_add)
-
     # 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 579bb954c3675a14656bcfe6eceb128056468eb3..d0418dc357090bbc314c31379797568ecf2d4bdd 100644
--- a/add_mesh_solid.py
+++ b/add_mesh_solid.py
@@ -887,26 +887,15 @@ class OtherMenu(bpy.types.Menu):
 
 import space_info
 
-classes = [
-    Solids,
-    Solids_add_menu,
-    PlatonicMenu,
-    ArchiMenu,
-    CatalanMenu,
-    OtherMenu
-]
-
-menu_func = (lambda self,
-            context: self.layout.menu(Solids_add_menu.bl_idname, icon="PLUGIN"))
+
+def menu_func(self, context):
+    self.layout.menu(Solids_add_menu.bl_idname, icon="PLUGIN")
+
 
 def register():
-    for i in classes:
-        bpy.types.register(i)
     space_info.INFO_MT_mesh_add.append(menu_func)
 
 def unregister():
-    for i in classes:
-        bpy.types.unregister(i)
     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 e2f5b89fdd872315ef839ce44d4ebb6f587d1663..525832ffea1ddb42ab03798cd353db6614e31de8 100644
--- a/add_mesh_twisted_torus.py
+++ b/add_mesh_twisted_torus.py
@@ -348,18 +348,15 @@ class AddTwistedTorus(bpy.types.Operator):
         return {'FINISHED'}
 
 # Add to the menu
-menu_func = (lambda self,
-            context: self.layout.operator(AddTwistedTorus.bl_idname,
-            text="Twisted Torus", icon='MESH_DONUT'))
+def menu_func(self, context):
+    self.layout.operator(AddTwistedTorus.bl_idname, text="Twisted Torus", icon='MESH_DONUT')
 
 
 def register():
-    bpy.types.register(AddTwistedTorus)
     bpy.types.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
-    bpy.types.unregister(AddTwistedTorus)
     bpy.types.INFO_MT_mesh_add.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/curve_simplify.py b/curve_simplify.py
index 175fffb9529a42cd17fdf8278e97ea0f8db662e2..bd7e64646aa7800ec15ec575d1456ae7f30fd079 100644
--- a/curve_simplify.py
+++ b/curve_simplify.py
@@ -586,12 +586,10 @@ class CURVE_OT_simplify(bpy.types.Operator):
 #### REGISTER ###################################
 #################################################
 def register():
-    bpy.types.register(CURVE_OT_simplify)
-    bpy.types.register(GRAPH_OT_simplify)
+    pass
 
 def unregister():
-    bpy.types.unregister(CURVE_OT_simplify)
-    bpy.types.unregister(GRAPH_OT_simplify)
+    pass
 
 if __name__ == "__main__":
     register()
diff --git a/io_anim_camera.py b/io_anim_camera.py
index 23e59fe8885eb981091b58f0869e959affde61c6..6ffa237e3f707a71766b097df6fc4a661f30c202 100644
--- a/io_anim_camera.py
+++ b/io_anim_camera.py
@@ -152,8 +152,12 @@ def menu_export(self, context):
 
 
 def register():
-    bpy.types.register(CameraExporter)
     bpy.types.INFO_MT_file_export.append(menu_export)
 
+
+def unregister():
+    bpy.types.INFO_MT_file_export.remove(menu_export)
+
+
 if __name__ == "__main__":
     register()
diff --git a/io_export_directx_x.py b/io_export_directx_x.py
index 7fb563084fea0f1340e93ed1632126685337ba29..d561ecc6c29dc2cc79e2674c336e989f17486063 100644
--- a/io_export_directx_x.py
+++ b/io_export_directx_x.py
@@ -1059,19 +1059,17 @@ class DirectXExporter(bpy.types.Operator):
 
 
 def menu_func(self, context):
-    DefaultPath = os.path.splitext(bpy.data.filepath)[0] + ".x"
-    self.layout.operator(DirectXExporter.bl_idname, text="DirectX (.x)").filepath = DefaultPath
+    default_path = os.path.splitext(bpy.data.filepath)[0] + ".x"
+    self.layout.operator(DirectXExporter.bl_idname, text="DirectX (.x)").filepath = default_path
 
 
 def register():
-    bpy.types.register(DirectXExporter)
     bpy.types.INFO_MT_file_export.append(menu_func)
 
 
 def unregister():
-    bpy.types.unregister(DirectXExporter)
     bpy.types.INFO_MT_file_export.remove(menu_func)
 
 
 if __name__ == "__main__":
-    register()
\ No newline at end of file
+    register()
diff --git a/io_export_unreal_psk_psa.py b/io_export_unreal_psk_psa.py
index 4434ad25f3ba27faa3db64c82f19a8c55cc7a143..58f473c879d9e653d8d69331d6b7ecb0e3ee7185 100644
--- a/io_export_unreal_psk_psa.py
+++ b/io_export_unreal_psk_psa.py
@@ -89,7 +89,6 @@ import operator
 
 from struct import pack, calcsize
 
-MENUPANELBOOL = True
 
 # REFERENCE MATERIAL JUST IN CASE:
 # 
@@ -1506,13 +1505,7 @@ class ExportUDKAnimData(bpy.types.Operator):
 		wm = context.manager
 		wm.add_fileselect(self)
 		return {'RUNNING_MODAL'}
-		
-def menu_func(self, context):
-	bpy.context.scene.unrealexportpsk = True
-	bpy.context.scene.unrealexportpsa = True
-	default_path = os.path.splitext(bpy.data.filepath)[0] + ".psk"
-	self.layout.operator("export.udk_anim_data", text="Skeleton Mesh / Animation Data (.psk/.psa)").filepath = default_path
-	
+
 
 class VIEW3D_PT_unrealtools_objectmode(bpy.types.Panel):
 	bl_space_type = "VIEW_3D"
@@ -1582,21 +1575,19 @@ class OBJECT_OT_UnrealExport(bpy.types.Operator):
 		#self.report({'WARNING', 'INFO'}, exportmessage)
 		self.report({'INFO'}, exportmessage)
 		return{'FINISHED'}	
-	
+
+
+def menu_func(self, context):
+	bpy.context.scene.unrealexportpsk = True
+	bpy.context.scene.unrealexportpsa = True
+	default_path = os.path.splitext(bpy.data.filepath)[0] + ".psk"
+	self.layout.operator("export.udk_anim_data", text="Skeleton Mesh / Animation Data (.psk/.psa)").filepath = default_path
+
+
 def register():
-	global MENUPANELBOOL
-	if MENUPANELBOOL:
-		bpy.types.register(OBJECT_OT_UnrealExport)
-		bpy.types.register(VIEW3D_PT_unrealtools_objectmode)
-	bpy.types.register(ExportUDKAnimData)
 	bpy.types.INFO_MT_file_export.append(menu_func)
 
 def unregister():
-	global MENUPANELBOOL
-	if MENUPANELBOOL:
-		bpy.types.unregister(OBJECT_OT_UnrealExport)
-		bpy.types.unregister(VIEW3D_PT_unrealtools_objectmode)
-	bpy.types.unregister(ExportUDKAnimData)
 	bpy.types.INFO_MT_file_export.remove(menu_func)
 
 if __name__ == "__main__":
diff --git a/io_import_images_as_planes.py b/io_import_images_as_planes.py
index 555c94762518b5f8f3ee3da53de47b81783c5524..0cfbf3bcb24d5c833c1dbe0aa0f28dee9e61a100 100644
--- a/io_import_images_as_planes.py
+++ b/io_import_images_as_planes.py
@@ -508,19 +508,15 @@ class ImportImagesAsPlanes(bpy.types.Operator):
 
 
 # Registering / Unregister
-menu_func = (lambda self, context: self.layout.operator(
-                    ImportImagesAsPlanes.bl_idname,
-                    text="Images as Planes",
-                    icon='PLUGIN'))
+def menu_func(self, context):
+    self.layout.operator(ImportImagesAsPlanes.bl_idname, text="Images as Planes", icon='PLUGIN')
 
 
 def register():
-    bpy.types.register(ImportImagesAsPlanes)
     bpy.types.INFO_MT_file_import.append(menu_func)
 
 
 def unregister():
-    bpy.types.unregister(ImportImagesAsPlanes)
     bpy.types.INFO_MT_file_import.remove(menu_func)
 
 
diff --git a/io_import_scene_mhx.py b/io_import_scene_mhx.py
index 9800b99c6541dd1ee48f6e09803570e5c7d86c98..9a2f712f5a326de9c5b248af1ebfef0da41168ee 100644
--- a/io_import_scene_mhx.py
+++ b/io_import_scene_mhx.py
@@ -2203,17 +2203,16 @@ def unregisterPanels():
 	bpy.types.unregister(MakeHumanFingerPanel)
 	'''
 
+
+def menu_func(self, context):
+    self.layout.operator(IMPORT_OT_makehuman_mhx.bl_idname, text="MakeHuman (.mhx)...")
+
+
 def register():
-	# registerPanels()
-	bpy.types.register(IMPORT_OT_makehuman_mhx)
-	menu_func = lambda self, context: self.layout.operator(IMPORT_OT_makehuman_mhx.bl_idname, text="MakeHuman (.mhx)...")
 	bpy.types.INFO_MT_file_import.append(menu_func)
-	return
- 
+
+
 def unregister():
-	# unregisterPanels()
-	bpy.types.unregister(IMPORT_OT_makehuman_mhx)
-	menu_func = lambda self, context: self.layout.operator(IMPORT_OT_makehuman_mhx.bl_idname, text="MakeHuman (.mhx)...")
 	bpy.types.INFO_MT_file_import.remove(menu_func)
 
 if __name__ == "__main__":
@@ -2239,8 +2238,3 @@ readMhxFile("C:/Documents and Settings/xxxxxxxxxxxxxxxxxxxx/Mina dokument/makehu
 #readMhxFile("/home/thomas/myblends/gobo/gobo.mhx")
 #readMhxFile("/home/thomas/myblends/sintel/simple.mhx")
 """
-
-
-
-
-
diff --git a/io_import_scene_unreal_psk.py b/io_import_scene_unreal_psk.py
index 50cb4bdda51afedd1fa54a8add7f58d217108fc0..584622e275ef84fd5904ad5993988609917b7332 100644
--- a/io_import_scene_unreal_psk.py
+++ b/io_import_scene_unreal_psk.py
@@ -557,7 +557,7 @@ def getInputFilename(filename):
 		print ("  Selected file = ",filename)
 		raise (IOError, "The selected input file is not a *.psk file")
 	pskimport(filename)
-  
+
 from bpy.props import *
 
 class IMPORT_OT_psk(bpy.types.Operator):
@@ -577,19 +577,20 @@ class IMPORT_OT_psk(bpy.types.Operator):
 		wm = context.manager
 		wm.add_fileselect(self)
 		return {'RUNNING_MODAL'}  
-  
-menu_func = lambda self, context: self.layout.operator(IMPORT_OT_psk.bl_idname, text="Skeleton Mesh (.psk)")
+
+def menu_func(self, context):
+    self.layout.operator(IMPORT_OT_psk.bl_idname, text="Skeleton Mesh (.psk)")
+
 
 def register():
-    bpy.types.register(IMPORT_OT_psk)
     bpy.types.INFO_MT_file_import.append(menu_func)
     
 def unregister():
-    bpy.types.unregister(IMPORT_OT_psk)
     bpy.types.INFO_MT_file_import.remove(menu_func)
 
 if __name__ == "__main__":
 	register()
+
 #note this only read the data and will not be place in the scene	
 #getInputFilename('C:\\blenderfiles\\BotA.psk') 
 #getInputFilename('C:\\blenderfiles\\AA.PSK')
diff --git a/io_mesh_raw/__init__.py b/io_mesh_raw/__init__.py
index 1af09c9fe015b90018cfa3ba51ebe90c211a2cc2..f2f8124a656be28984784916f41d5a615713a559 100644
--- a/io_mesh_raw/__init__.py
+++ b/io_mesh_raw/__init__.py
@@ -33,6 +33,17 @@ bl_addon_info = {
 import bpy
 
 
+try:
+    init_data
+
+    reload(import_raw)
+    reload(export_raw)
+except:
+    from io_mesh_raw import import_raw
+    from io_mesh_raw import export_raw
+
+init_data = True
+
 def menu_import(self, context):
     from io_mesh_raw import import_raw
     self.layout.operator(import_raw.RawImporter.bl_idname, text="Raw Faces (.raw)").filepath = "*.raw"
@@ -46,16 +57,10 @@ def menu_export(self, context):
 
 
 def register():
-    from io_mesh_raw import import_raw, export_raw
-    bpy.types.register(import_raw.RawImporter)
-    bpy.types.register(export_raw.RawExporter)
     bpy.types.INFO_MT_file_import.append(menu_import)
     bpy.types.INFO_MT_file_export.append(menu_export)
 
 def unregister():
-    from io_mesh_raw import import_raw, export_raw
-    bpy.types.unregister(import_raw.RawImporter)
-    bpy.types.unregister(export_raw.RawExporter)
     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 1858c17bcb7e7b51c2f6c31502a6f9932fe183bb..6a0154e616704985ad8abcc85e971ad9f1597f2f 100644
--- a/io_mesh_stl/__init__.py
+++ b/io_mesh_stl/__init__.py
@@ -50,7 +50,17 @@ bl_addon_info = {
 import bpy
 from bpy.props import *
 
-from io_mesh_stl import stl_utils, blender_utils
+
+try:
+    init_data
+
+    reload(stl_utils)
+    reload(blender_utils)
+except:
+    from io_mesh_stl import stl_utils
+    from io_mesh_stl import blender_utils
+
+init_data = True
 
 
 class StlImporter(bpy.types.Operator):
@@ -135,15 +145,11 @@ def menu_export(self, context):
 
 
 def register():
-    bpy.types.register(StlImporter)
-    bpy.types.register(StlExporter)
     bpy.types.INFO_MT_file_import.append(menu_import)
     bpy.types.INFO_MT_file_export.append(menu_export)
 
 
 def unregister():
-    bpy.types.unregister(StlImporter)
-    bpy.types.unregister(StlExporter)
     bpy.types.INFO_MT_file_import.remove(menu_import)
     bpy.types.INFO_MT_file_export.remove(menu_export)
 
diff --git a/mesh_relax.py b/mesh_relax.py
index 7d3410d78d9d96a7d5fde62900efefdfaabf44a7..affcbf0569d38657042ef0a8d2f25d64b3eee55f 100644
--- a/mesh_relax.py
+++ b/mesh_relax.py
@@ -112,15 +112,16 @@ class Relax(bpy.types.Operator):
             relax_mesh(context)
         return {'FINISHED'}
 
-menu_func = (lambda self, context: self.layout.operator(Relax.bl_idname, text="Relax"))
+
+def menu_func(self, context):
+    self.layout.operator(Relax.bl_idname, text="Relax")
+
 
 def register():
-    bpy.types.register(Relax)
     bpy.types.VIEW3D_MT_edit_mesh_specials.append(menu_func)
     bpy.types.VIEW3D_MT_edit_mesh_vertices.append(menu_func)
 
 def unregister():
-    bpy.types.unregister(Relax)
     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 37bc2bc7a752a706de1368e2788a6802dd663d06..adaf3cf2f8bef3ce6740396c1efea204bc73dd2a 100644
--- a/mesh_surface_sketch.py
+++ b/mesh_surface_sketch.py
@@ -796,21 +796,12 @@ class GPENCIL_OT_SURFSK_strokes_to_curves(bpy.types.Operator):
         return {"FINISHED"}
 
 
-
-
-
 def register(): 
-    bpy.types.register(GPENCIL_OT_SURFSK_add_surface) 
-    bpy.types.register(GPENCIL_OT_SURFSK_strokes_to_curves) 
-    bpy.types.register(VIEW3D_PT_tools_SURF_SKETCH)
-    
     keymap_item_add_surf = bpy.data.window_managers[0].active_keyconfig.keymaps["3D View"].items.add("GPENCIL_OT_SURFSK_add_surface","E","PRESS", key_modifier="D")
     keymap_item_stroke_to_curve = bpy.data.window_managers[0].active_keyconfig.keymaps["3D View"].items.add("GPENCIL_OT_SURFSK_strokes_to_curves","C","PRESS", key_modifier="D")
 
+
 def unregister(): 
-    bpy.types.unregister(GPENCIL_OT_SURFSK_add_surface) 
-    bpy.types.unregister(GPENCIL_OT_SURFSK_strokes_to_curves) 
-    bpy.types.unregister(VIEW3D_PT_tools_SURF_SKETCH)
     km = bpy.data.window_managers[0].active_keyconfig.keymaps["3D View"]
     for kmi in km.items:
         if kmi.idname == 'wm.call_menu':
diff --git a/object_add_chain.py b/object_add_chain.py
index 40782725714381f361505e8a31e1b27fda5c741e..22f45e791fd1e555c6bbac146cd5781fd3d132ae 100644
--- a/object_add_chain.py
+++ b/object_add_chain.py
@@ -134,21 +134,16 @@ class AddChain(bpy.types.Operator):
         return {'FINISHED'}
 
 # Register the operator
-menu_func = (lambda self, 
-            context: self.layout.operator(AddChain.bl_idname,
-            text="Chain", icon='PLUGIN'))
+def menu_func(self, context):
+    self.layout.operator(AddChain.bl_idname, text="Chain", icon='PLUGIN')
 
 
 def register():
-    bpy.types.register(AddChain)
-
     # Add "Chain" menu to the "Add Mesh" menu.
     bpy.types.INFO_MT_mesh_add.append(menu_func)
 
 
 def unregister():
-    bpy.types.unregister(AddChain)
-
     # Remove "Chain" menu from the "Add Mesh" menu.
     bpy.types.INFO_MT_mesh_add.remove(menu_func)
 
diff --git a/object_cloud_gen.py b/object_cloud_gen.py
index 8b9f0e1f2722c6507b7d22d35b207e478a33d878..8f82eb9f16446ca1f9ebab28df8faf19ad64ebbe 100644
--- a/object_cloud_gen.py
+++ b/object_cloud_gen.py
@@ -659,20 +659,12 @@ class GenerateCloud(bpy.types.Operator):
         return {'FINISHED'}
 
 
-classes = [VIEW3D_PT_tools_cloud,
-        GenerateCloud]
-
-
 def register():
-    register = bpy.types.register
-    for cls in classes:
-        register(cls)
+    pass
 
 
 def unregister():
-    unregister = bpy.types.unregister
-    for cls in classes:
-        unregister(cls)
+    pass
 
 
 if __name__ == "__main__":
diff --git a/object_fracture/__init__.py b/object_fracture/__init__.py
index f1c87d6a07870b70ff038dc8953930fa72aaa7ba..449baeaef26ff3c7a7823ae517e7cdb67ea3da55 100644
--- a/object_fracture/__init__.py
+++ b/object_fracture/__init__.py
@@ -33,8 +33,17 @@ bl_addon_info = {
 
 
 import bpy
-from object_fracture import fracture_ops, fracture_setup
 
+try:
+    init_data
+    
+    reload(fracture_ops)
+    reload(fracture_setup)
+except:
+    from object_fracture import fracture_ops
+    from object_fracture import fracture_setup
+
+init_data = True
 
 class INFO_MT_add_fracture_objects(bpy.types.Menu):
     bl_idname = "INFO_MT_add_fracture_objects"
@@ -52,33 +61,18 @@ class INFO_MT_add_fracture_objects(bpy.types.Menu):
             text="Rigidbody Recorder")
 
 import space_info
-# Define the submenu
-menu_func = (lambda self,
-    context: self.layout.menu("INFO_MT_add_fracture_objects", icon="PLUGIN"))
 
 
-def register():
-    bpy.types.register(fracture_ops.FractureSimple)
-    bpy.types.register(fracture_ops.FractureGroup)
-    bpy.types.register(fracture_ops.ImportFractureRecorder)
-    bpy.types.register(fracture_ops.ImportFractureBomb)
-    bpy.types.register(fracture_ops.ImportFractureProjectile)
-    bpy.types.register(fracture_setup.SetupFractureShards)
-    bpy.types.register(INFO_MT_add_fracture_objects)
+def menu_func(self, context):
+    self.layout.menu("INFO_MT_add_fracture_objects", icon="PLUGIN")
+
 
+def register():
     # Add the "add fracture objects" menu to the "Add" menu
     space_info.INFO_MT_add.append(menu_func)
 
 
 def unregister():
-    bpy.types.unregister(fracture_ops.FractureSimple)
-    bpy.types.unregister(fracture_ops.FractureGroup)
-    bpy.types.unregister(fracture_ops.ImportFractureRecorder)
-    bpy.types.unregister(fracture_ops.ImportFractureBomb)
-    bpy.types.unregister(fracture_ops.ImportFractureProjectile)
-    bpy.types.unregister(fracture_setup.SetupFractureShards)
-    bpy.types.unregister(INFO_MT_add_fracture_objects)
-
     # 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 02208804b61483f8ad1ef3278fef6e055082cb2f..19e61aafb84c9cd7f387211dc7421ba35d83a9af 100644
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -30,25 +30,24 @@ bl_addon_info = {
         'func=detail&aid=23145&group_id=153&atid=469',
     'category': 'Render'}
 
+try:
+    init_data
+
+    reload(render)
+    reload(ui)
+except:
+    from render_povray import render
+    from render_povray import ui
+
+init_data = True
 
 def register():
-    import bpy
-    from render_povray import ui, render
-    classes = [render.PovrayRender,ui.RENDER_PT_povray_radiosity]
-    register = bpy.types.register
-    for cls in classes:
-        register(cls)
+    pass
 
 
 def unregister():
-    import bpy
-    from render_povray import ui, render
-    classes = [render.PovrayRender,ui.RENDER_PT_povray_radiosity]
-    unregister = bpy.types.unregister
-    for cls in classes:
-        unregister(cls)
+    pass
+
 
 if __name__ == "__main__":
     register()
-
-
diff --git a/render_povray/render.py b/render_povray/render.py
index 79d49a45ca55858017fbce803a5d439f2d381cb6..b2845d7cf9662db37b18ce4d201caa58393ca063 100644
--- a/render_povray/render.py
+++ b/render_povray/render.py
@@ -18,7 +18,6 @@
 
 import bpy
 import subprocess, os, sys, time
-from render_povray.write import write_pov, write_pov_ini
 
 import platform as pltfrm
 if pltfrm.architecture()[0] == '64bit':
diff --git a/render_povray/ui.py b/render_povray/ui.py
index c3e560c1ee1e0b10408c59068a12d85a6e8b5d57..1dfed0f3d1c08494b746761b125cd02083b706d7 100644
--- a/render_povray/ui.py
+++ b/render_povray/ui.py
@@ -153,7 +153,7 @@ del properties_data_camera
 
 
 
-class RenderButtonsPanel(bpy.types.Panel):
+class RenderButtonsPanel():
     bl_space_type = 'PROPERTIES'
     bl_region_type = 'WINDOW'
     bl_context = "render"
@@ -164,7 +164,7 @@ class RenderButtonsPanel(bpy.types.Panel):
         return (rd.use_game_engine == False) and (rd.engine in self.COMPAT_ENGINES)
 
 
-class RENDER_PT_povray_radiosity(RenderButtonsPanel):
+class RENDER_PT_povray_radiosity(RenderButtonsPanel, bpy.types.Panel):
     bl_label = "Radiosity"
     COMPAT_ENGINES = {'POVRAY_RENDER'}
 
diff --git a/render_renderfarmfi.py b/render_renderfarmfi.py
index a65769f923b1c01781582937dd79e34bc746d96a..7937cff4bdea6f4817d0ef3e0c4b20298892215a 100644
--- a/render_renderfarmfi.py
+++ b/render_renderfarmfi.py
@@ -34,7 +34,7 @@ bpy.download_location = 'http://www.renderfarm.fi/blender'
 bl_addon_info = {
     'name': 'Render: Renderfarm.fi',
     'author': 'Nathan Letwory <nathan@letworyinteractive.com>, Jesse Kaukonen <jesse.kaukonen@gmail.com>',
-    'version': str(bpy.CURRENT_VERSION),
+    'version': "2",
     'blender': (2, 5, 3),
     'location': 'Render > Engine > Renderfarm.fi',
     'description': 'Send .blend as session to http://www.renderfarm.fi to render',
@@ -770,30 +770,10 @@ def menu_export(self, context):
     self.layout.operator(RenderfarmFi.bl_idname, text=RenderfarmFi.bl_label)
 
 def register():
-    bpy.types.register(RenderfarmFi)
-    bpy.types.register(ORE_OpenDownloadLocation)
-    bpy.types.register(ORE_CancelSession)
-    bpy.types.register(ORE_GetCompletedSessions)
-    bpy.types.register(ORE_GetCancelledSessions)
-    bpy.types.register(ORE_GetActiveSessions)
-    bpy.types.register(ORE_GetPendingSessions)
-    bpy.types.register(ORE_CheckUpdate)
-    bpy.types.register(ORE_LoginOp)
-    bpy.types.register(ORE_PrepareOp)
-    bpy.types.register(ORE_ResetOp)
-    bpy.types.register(ORE_UploaderOp)
-    bpy.types.register(ORE_UseBlenderReso)
-    bpy.types.register(ORE_ChangeUser)
-    bpy.types.register(RENDERFARM_MT_Session)
-    bpy.types.register(LOGIN_PT_RenderfarmFi)
-    bpy.types.register(CHECK_PT_RenderfarmFi)
-    bpy.types.register(SESSIONS_PT_RenderfarmFi)
-    bpy.types.register(RENDER_PT_RenderfarmFi)
     bpy.types.INFO_MT_render.append(menu_export)
 
 def unregister():
-    bpy.types.unregister(ORESession)
-    bpy.types.unregister(ORESettings)
+    bpy.types.INFO_MT_render.remove(menu_export)
 
 if __name__ == "__main__":
     register()
diff --git a/space_view3d_align_tools.py b/space_view3d_align_tools.py
index 95f8843c9eab61c96e7070dfe635947ba3c5ee24..5ce7bdbb13402cd02f328d076ff58792adbd3cdc 100644
--- a/space_view3d_align_tools.py
+++ b/space_view3d_align_tools.py
@@ -325,37 +325,10 @@ class AlignScaleZOperator(bpy.types.Operator):
 
 ## registring
 def register():
-        bpy.types.register(AlignUi)
-        bpy.types.register(AlignOperator)
-        bpy.types.register(AlignLocationOperator)
-        bpy.types.register(AlignLocationXOperator)
-        bpy.types.register(AlignLocationYOperator)
-        bpy.types.register(AlignLocationZOperator)
-        bpy.types.register(AlignRotationOperator)
-        bpy.types.register(AlignRotationXOperator)
-        bpy.types.register(AlignRotationYOperator)
-        bpy.types.register(AlignRotationZOperator)
-        bpy.types.register(AlignScaleOperator)
-        bpy.types.register(AlignScaleXOperator)
-        bpy.types.register(AlignScaleYOperator)
-        bpy.types.register(AlignScaleZOperator)
-
+    pass
 
 def unregister():
-        bpy.types.unregister(AlignUi)
-        bpy.types.unregister(AlignOperator)
-        bpy.types.unregister(AlignLocationOperator)
-        bpy.types.unregister(AlignLocationXOperator)
-        bpy.types.unregister(AlignLocationYOperator)
-        bpy.types.unregister(AlignLocationZOperator)
-        bpy.types.unregister(AlignRotationOperator)
-        bpy.types.unregister(AlignRotationXOperator)
-        bpy.types.unregister(AlignRotationYOperator)
-        bpy.types.unregister(AlignRotationZOperator)
-        bpy.types.unregister(AlignScaleOperator)
-        bpy.types.unregister(AlignScaleXOperator)
-        bpy.types.unregister(AlignScaleYOperator)
-        bpy.types.unregister(AlignScaleZOperator)
+    pass
 
 if __name__ == "__main__":
     register()
diff --git a/space_view3d_materials_utils.py b/space_view3d_materials_utils.py
index dca94e5ca8b658acde3b353e03e9e4b3c4db63eb..5da32b016b0ea8ed1900d7bac810c2e75795a511 100644
--- a/space_view3d_materials_utils.py
+++ b/space_view3d_materials_utils.py
@@ -664,35 +664,12 @@ class VIEW3D_MT_select_material(bpy.types.Menu):
                     icon='MATERIAL_DATA').matname = m
 
 
-
-
-       
-
-classes = [
-VIEW3D_OT_assign_material,
-VIEW3D_OT_clean_material_slots,
-VIEW3D_OT_material_to_texface,
-VIEW3D_OT_select_material_by_name,
-VIEW3D_OT_replace_material,
-VIEW3D_OT_texface_to_material,
-VIEW3D_MT_master_material,
-VIEW3D_MT_assign_material,
-VIEW3D_MT_select_material]
-
 def register():
-    register = bpy.types.register
-    for cls in classes:
-        register(cls)
-
     km = bpy.context.manager.active_keyconfig.keymaps['3D View']
     kmi = km.items.add('wm.call_menu', 'Q', 'PRESS')
     kmi.properties.name = "VIEW3D_MT_master_material"
 
 def unregister():
-    unregister = bpy.types.unregister
-    for cls in classes:
-        unregister(cls)
-
     km = bpy.context.manager.active_keyconfig.keymaps['3D View']
     for kmi in km.items:
         if kmi.idname == 'wm.call_menu':
diff --git a/space_view3d_panel_measure.py b/space_view3d_panel_measure.py
index 9ac406ca62b2fe034f39a77fb14e567a3efaad7b..f5b06862b506b24f67e27a56736f54ce462dd66a 100644
--- a/space_view3d_panel_measure.py
+++ b/space_view3d_panel_measure.py
@@ -1051,15 +1051,11 @@ class VIEW3D_PT_measure(bpy.types.Panel):
 
 
 def register():
-    bpy.types.register(VIEW3D_PT_measure)
-    bpy.types.register(VIEW3D_OT_reenter_editmode)
-    bpy.types.register(VIEW3D_OT_display_measurements)
+    pass
 
 
 def unregister():
-    bpy.types.unregister(VIEW3D_PT_measure)
-    bpy.types.unregister(VIEW3D_OT_reenter_editmode)
-    bpy.types.unregister(VIEW3D_OT_display_measurements)
+    pass
 
 if __name__ == "__main__":
     register()
diff --git a/space_view3d_property_chart.py b/space_view3d_property_chart.py
index bbbc90b391ddf70ed788adc8b284f634bccc5519..ca6506769dad57e15d320f7b1dd9be799676afbd 100644
--- a/space_view3d_property_chart.py
+++ b/space_view3d_property_chart.py
@@ -218,15 +218,11 @@ class CopyPropertyChart(bpy.types.Operator):
 
 
 def register():
-    bpy.types.register(View3DEditProps)
-    bpy.types.register(SequencerEditProps)
-    bpy.types.register(CopyPropertyChart)
+    pass
 
 
 def unregister():
-    bpy.types.unregister(View3DEditProps)
-    bpy.types.unregister(SequencerEditProps)
-    bpy.types.unregister(CopyPropertyChart)
+    pass
 
 if __name__ == "__main__":
     register()
diff --git a/space_view3d_spacebar_menu.py b/space_view3d_spacebar_menu.py
index afd8c8140d20b9dec805e655fab61996495f19ef..50f49dffe5e6e172c18f1f3a1bac10bd5d03b609 100644
--- a/space_view3d_spacebar_menu.py
+++ b/space_view3d_spacebar_menu.py
@@ -1422,74 +1422,12 @@ class VIEW3D_MT_undoS(bpy.types.Menu):
         layout.operator("ed.redo", icon='TRIA_RIGHT')
 
 def register():
-    bpy.types.register(VIEW3D_MT_Space_Dynamic_Menu)
-    bpy.types.register(VIEW3D_MT_AddMenu)
-    bpy.types.register(VIEW3D_MT_TransformMenu)
-    bpy.types.register(VIEW3D_MT_MirrorMenu)
-    bpy.types.register(VIEW3D_MT_ParentMenu)
-    bpy.types.register(VIEW3D_MT_GroupMenu)
-    bpy.types.register(VIEW3D_MT_AlignMenu)
-    bpy.types.register(VIEW3D_MT_SelectMenu)
-    bpy.types.register(VIEW3D_MT_SelectEditMenu)
-    bpy.types.register(VIEW3D_MT_SelectCurveMenu)
-    bpy.types.register(VIEW3D_MT_SelectPoseMenu)
-    bpy.types.register(VIEW3D_MT_PoseCopy)
-    bpy.types.register(VIEW3D_MT_PoseNames)
-    bpy.types.register(VIEW3D_MT_KeyframeMenu)
-    bpy.types.register(VIEW3D_MT_SelectArmatureMenu)
-    bpy.types.register(VIEW3D_MT_ArmatureName)
-    bpy.types.register(VIEW3D_MT_SelectMetaball)
-    bpy.types.register(VIEW3D_MT_SelectSurface)
-    bpy.types.register(VIEW3D_MT_edit_TK)
-    bpy.types.register(VIEW3D_MT_EditArmatureTK)
-    bpy.types.register(VIEW3D_MT_editM_Edge)
-    bpy.types.register(VIEW3D_MT_EditCurveCtrlpoints)
-    bpy.types.register(VIEW3D_MT_EditCurveSegments)
-    bpy.types.register(VIEW3D_MT_EditCurveSpecials)
-    bpy.types.register(VIEW3D_OT_pivot_cursor)
-    bpy.types.register(VIEW3D_OT_revert_pivot)
-    bpy.types.register(VIEW3D_MT_CursorMenu)
-    bpy.types.register(VIEW3D_MT_EditCursorMenu)
-    bpy.types.register(VIEW3D_OT_CursorToEdgeIntersection)
-    bpy.types.register(VIEW3D_MT_undoS)
-
     km = bpy.context.manager.active_keyconfig.keymaps['3D View']
     kmi = km.items.add('wm.call_menu', 'SPACE', 'PRESS')
     kmi.properties.name = "VIEW3D_MT_Space_Dynamic_Menu"
 
 
 def unregister():
-    bpy.types.unregister(VIEW3D_MT_Space_Dynamic_Menu)
-    bpy.types.unregister(VIEW3D_MT_AddMenu)
-    bpy.types.unregister(VIEW3D_MT_TransformMenu)
-    bpy.types.unregister(VIEW3D_MT_MirrorMenu)
-    bpy.types.unregister(VIEW3D_MT_ParentMenu)
-    bpy.types.unregister(VIEW3D_MT_GroupMenu)
-    bpy.types.unregister(VIEW3D_MT_AlignMenu)
-    bpy.types.unregister(VIEW3D_MT_SelectMenu)
-    bpy.types.unregister(VIEW3D_MT_SelectEditMenu)
-    bpy.types.unregister(VIEW3D_MT_SelectCurveMenu)
-    bpy.types.unregister(VIEW3D_MT_SelectPoseMenu)
-    bpy.types.unregister(VIEW3D_MT_PoseCopy)
-    bpy.types.unregister(VIEW3D_MT_PoseNames)
-    bpy.types.unregister(VIEW3D_MT_KeyframeMenu)
-    bpy.types.unregister(VIEW3D_MT_SelectArmatureMenu)
-    bpy.types.unregister(VIEW3D_MT_ArmatureName)
-    bpy.types.unregister(VIEW3D_MT_SelectMetaball)
-    bpy.types.unregister(VIEW3D_MT_SelectSurface)
-    bpy.types.unregister(VIEW3D_MT_edit_TK)
-    bpy.types.unregister(VIEW3D_MT_EditArmatureTK)
-    bpy.types.unregister(VIEW3D_MT_editM_Edge)
-    bpy.types.unregister(VIEW3D_MT_EditCurveCtrlpoints)
-    bpy.types.unregister(VIEW3D_MT_EditCurveSegments)
-    bpy.types.unregister(VIEW3D_MT_EditCurveSpecials)
-    bpy.types.unregister(VIEW3D_OT_pivot_cursor)
-    bpy.types.unregister(VIEW3D_OT_revert_pivot)
-    bpy.types.unregister(VIEW3D_MT_CursorMenu)
-    bpy.types.unregister(VIEW3D_MT_EditCursorMenu)
-    bpy.types.unregister(VIEW3D_OT_CursorToEdgeIntersection)
-    bpy.types.unregister(VIEW3D_MT_undoS)
-
     km = bpy.context.manager.active_keyconfig.keymaps['3D View']
     for kmi in km.items:
         if kmi.idname == 'wm.call_menu':