diff --git a/mesh_looptools.py b/mesh_looptools.py
index cb1792729ee2f064fa7ff637d88646585b3dda0f..4911f383f759061a9f24d27f5518bf87d3a8b224 100644
--- a/mesh_looptools.py
+++ b/mesh_looptools.py
@@ -29,22 +29,6 @@ bl_info = {
     "category": "Mesh",
 }
 
-#    blender 2.73 needs to call ensure_lookup_table() for bm.verts[], bm.edges[], bm.faces[].
-#    generically the fix will do this...
-#    the lookup_table will get "dirty" after:
-#    bm.new(), bm.from_mesh(), bm.from_edit_mesh()
-#    bm.verts.new(), bm.edges.new(), bm.faces.new()
-#    bm.verts.remove(), bm.edges.remove(), bm.faces.remove()
-#    bm.normal_update(), bm.copy()
-#
-#    bm.verts.ensure_lookup_table() ### 2.73
-#    bm.edges.ensure_lookup_table() ### 2.73
-#    bm.faces.ensure_lookup_table() ### 2.73
-
-#    blender 2.73 has a new grease_pencil per object and new per scene
-#    gp = object.grease_pencil
-#    if not gp:
-#        gp = context.scene.grease_pencil
 
 import bmesh
 import bpy
@@ -63,7 +47,6 @@ from bpy_extras import view3d_utils
 looptools_cache = {}
 
 
-### 2.73
 def get_grease_pencil(object, context):
     gp = object.grease_pencil
     if not gp:
@@ -547,9 +530,9 @@ def get_derived_bmesh(object, bm, scene):
         derived = False
         bm_mod = bm
 
-    bm_mod.verts.ensure_lookup_table() ### 2.73
-    bm_mod.edges.ensure_lookup_table() ### 2.73
-    bm_mod.faces.ensure_lookup_table() ### 2.73
+    bm_mod.verts.ensure_lookup_table()
+    bm_mod.edges.ensure_lookup_table()
+    bm_mod.faces.ensure_lookup_table()
 
     return(derived, bm_mod)
 
@@ -765,9 +748,9 @@ def initialise():
         bpy.ops.object.mode_set(mode='EDIT')
     bm = bmesh.from_edit_mesh(object.data)
 
-    bm.verts.ensure_lookup_table() ### 2.73
-    bm.edges.ensure_lookup_table() ### 2.73
-    bm.faces.ensure_lookup_table() ### 2.73
+    bm.verts.ensure_lookup_table()
+    bm.edges.ensure_lookup_table()
+    bm.faces.ensure_lookup_table()
 
     return(global_undo, object, bm)
 
@@ -815,9 +798,9 @@ def move_verts(object, bm, mapping, move, lock, influence):
     bm.normal_update()
     object.data.update()
 
-    bm.verts.ensure_lookup_table() ### 2.73
-    bm.edges.ensure_lookup_table() ### 2.73
-    bm.faces.ensure_lookup_table() ### 2.73
+    bm.verts.ensure_lookup_table()
+    bm.edges.ensure_lookup_table()
+    bm.faces.ensure_lookup_table()
 
 
 # load custom tool settings
@@ -1431,7 +1414,7 @@ edgekey_to_edge):
 def bridge_create_vertices(bm, vertices):
     for i in range(len(vertices)):
         bm.verts.new(vertices[i])
-    bm.verts.ensure_lookup_table() ### 2.73
+    bm.verts.ensure_lookup_table()
 
 
 # add faces to mesh
@@ -1459,9 +1442,9 @@ def bridge_create_faces(object, bm, faces, twist):
     bm.normal_update()
     object.data.update(calc_edges=True) # calc_edges prevents memory-corruption
 
-    bm.verts.ensure_lookup_table() ### 2.73
-    bm.edges.ensure_lookup_table() ### 2.73
-    bm.faces.ensure_lookup_table() ### 2.73
+    bm.verts.ensure_lookup_table()
+    bm.edges.ensure_lookup_table()
+    bm.faces.ensure_lookup_table()
 
     return(new_faces)
 
@@ -1610,9 +1593,9 @@ def bridge_remove_internal_faces(bm, old_selected_faces):
     for edge in remove_edges:
         bm.edges.remove(edge)
 
-    bm.faces.ensure_lookup_table() ### 2.73
-    bm.edges.ensure_lookup_table() ### 2.73
-    bm.verts.ensure_lookup_table() ### 2.73
+    bm.faces.ensure_lookup_table()
+    bm.edges.ensure_lookup_table()
+    bm.verts.ensure_lookup_table()
 
 
 # update list of internal faces that are flagged for removal
@@ -2710,7 +2693,7 @@ conversion_distance, conversion_max, conversion_min, conversion_vertices):
                         mat_world * point.co))
                 # force even spreading of points, so they are placed on stroke
                 method = 'regular'
-    bm_mod.verts.ensure_lookup_table() ### 2.73
+    bm_mod.verts.ensure_lookup_table()
     bm_mod.verts.index_update()
     for stroke, verts_seq in stroke_verts:
         if len(verts_seq) < 2:
@@ -2731,7 +2714,7 @@ conversion_distance, conversion_max, conversion_min, conversion_vertices):
                 if m_stroke != stroke:
                     continue
                 bm_mod.edges.new((vert, verts_seq[point]))
-        bm_mod.edges.ensure_lookup_table() ### 2.73
+        bm_mod.edges.ensure_lookup_table()
     bmesh.update_edit_mesh(object.data)
 
     return(move)
@@ -3876,9 +3859,9 @@ class GStretch(bpy.types.Operator):
                 straightening = True
                 derived = False
                 bm_mod = bm.copy()
-                bm_mod.verts.ensure_lookup_table() ### 2.73
-                bm_mod.edges.ensure_lookup_table() ### 2.73
-                bm_mod.faces.ensure_lookup_table() ### 2.73
+                bm_mod.verts.ensure_lookup_table()
+                bm_mod.edges.ensure_lookup_table()
+                bm_mod.faces.ensure_lookup_table()
                 strokes = gstretch_get_fake_strokes(object, bm_mod, loops)
             if not straightening:
                 derived, bm_mod = get_derived_bmesh(object, bm, context.scene)
@@ -3897,9 +3880,9 @@ class GStretch(bpy.types.Operator):
                 derived = False
                 mapping = False
                 bm_mod = bm.copy()
-                bm_mod.verts.ensure_lookup_table() ### 2.73
-                bm_mod.edges.ensure_lookup_table() ### 2.73
-                bm_mod.faces.ensure_lookup_table() ### 2.73
+                bm_mod.verts.ensure_lookup_table()
+                bm_mod.edges.ensure_lookup_table()
+                bm_mod.faces.ensure_lookup_table()
                 edge_keys = [edgekey(edge) for edge in bm_mod.edges if \
                     edge.select and not edge.hide]
                 loops = get_connected_selections(edge_keys)