diff --git a/io_mesh_ply/__init__.py b/io_mesh_ply/__init__.py
index cceb41868a68a7ecf7aa7bef65a6d812f2a78813..7e2a70376a8b5a09a00afb8a9e5a8ff5303a3a81 100644
--- a/io_mesh_ply/__init__.py
+++ b/io_mesh_ply/__init__.py
@@ -180,15 +180,23 @@ def menu_func_export(self, context):
     self.layout.operator(ExportPLY.bl_idname, text="Stanford (.ply)")
 
 
+classes = (
+    ImportPLY,
+    ExportPLY,
+    )
+
+
 def register():
-    bpy.utils.register_module(__name__)
+    for cls in classes:
+        bpy.utils.register_class(cls)
 
     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__)
+    for cls in classes:
+        bpy.utils.unregister_class(cls)
 
     bpy.types.INFO_MT_file_import.remove(menu_func_import)
     bpy.types.INFO_MT_file_export.remove(menu_func_export)