diff --git a/io_mesh_ply/import_ply.py b/io_mesh_ply/import_ply.py
index ee64552a50b8520bc593a8cf32519dac413cf0e3..98184307c96fd25e39ad7d94b6f24dbd38b733f1 100644
--- a/io_mesh_ply/import_ply.py
+++ b/io_mesh_ply/import_ply.py
@@ -217,12 +217,10 @@ def read(filepath):
 import bpy
 
 
-def load_ply(filepath):
-    import time
+def load_ply_mesh(filepath, ply_name):
     from bpy_extras.io_utils import unpack_face_list
     # from bpy_extras.image_utils import load_image  # UNUSED
 
-    t = time.time()
     obj_spec, obj, texture = read(filepath)
     if obj is None:
         print('Invalid file')
@@ -292,8 +290,6 @@ def load_ply(filepath):
                 for j in range(len_ind - 2):
                     add_face(verts, (ind[0], ind[j + 1], ind[j + 2]), uvindices, colindices)
 
-    ply_name = bpy.path.display_name_from_filepath(filepath)
-
     mesh = bpy.data.meshes.new(name=ply_name)
 
     mesh.vertices.add(len(obj[b'vertex']))
@@ -358,6 +354,16 @@ def load_ply(filepath):
             for face in mesh.uv_textures[0].data:
                 face.image = image
 
+    return mesh
+
+def load_ply(filepath):
+    import time
+
+    t = time.time()
+    ply_name = bpy.path.display_name_from_filepath(filepath)
+
+    mesh = load_ply_mesh(filepath, ply_name)
+
     scn = bpy.context.scene
 
     obj = bpy.data.objects.new(ply_name, mesh)