diff --git a/add_mesh_gears.py b/add_mesh_gears.py
index c37ec80af98b4cea06a8398e4cf174990cbf18d1..eeb763b0a174ee99ca80db19889e1c08f9d9fba9 100644
--- a/add_mesh_gears.py
+++ b/add_mesh_gears.py
@@ -44,8 +44,7 @@ Also, the vertex group API is changed a little bit but the concepts
 are the same:
 =========
 vertexgroup = ob.vertex_groups.new('NAME_OF_VERTEXGROUP')
-for i in vertexgroup_vertex_indices:
-    ob.vertex_groups.assign_vertex(i, vertexgroup, weight, 'ADD')
+ob.vertex_groups.assign(vertexgroup_vertex_indices, vertexgroup, weight, 'ADD')
 =========
 
 Now for some reason the name does not 'stick' and we have to set it this way:
@@ -788,12 +787,10 @@ class AddGear(bpy.types.Operator):
 
         # Create vertex groups from stored vertices.
         tipGroup = obj.vertex_groups.new('Tips')
-        for vert in verts_tip:
-            obj.vertex_groups.assign(vert, tipGroup, 1.0, 'ADD')
+        obj.vertex_groups.assign(verts_tip, tipGroup, 1.0, 'ADD')
 
         valleyGroup = obj.vertex_groups.new('Valleys')
-        for vert in verts_valley:
-            obj.vertex_groups.assign(vert, valleyGroup, 1.0, 'ADD')
+        obj.vertex_groups.assign(verts_valley, valleyGroup, 1.0, 'ADD')
 
         return {'FINISHED'}
 
@@ -896,12 +893,10 @@ class AddWormGear(bpy.types.Operator):
 
         # Create vertex groups from stored vertices.
         tipGroup = obj.vertex_groups.new('Tips')
-        for vert in verts_tip:
-            obj.vertex_groups.assign(vert, tipGroup, 1.0, 'ADD')
+        obj.vertex_groups.assign(verts_tip, tipGroup, 1.0, 'ADD')
 
         valleyGroup = obj.vertex_groups.new('Valleys')
-        for vert in verts_valley:
-            obj.vertex_groups.assign(vert, valleyGroup, 1.0, 'ADD')
+        obj.vertex_groups.assign(verts_valley, valleyGroup, 1.0, 'ADD')
 
         return {'FINISHED'}
 
diff --git a/io_import_scene_mhx.py b/io_import_scene_mhx.py
index 00df0c8e5d8fa95c2c82ec1aacd8afa7b8e688ad..9f375a18327708d7374c25caecedd746bc92eaac 100644
--- a/io_import_scene_mhx.py
+++ b/io_import_scene_mhx.py
@@ -1266,9 +1266,7 @@ def parseVertexGroup(ob, me, args, tokens):
         group = ob.vertex_groups.new(grpName)
         group.name = grpName
         loadedData['VertexGroup'][grpName] = group
-        for (key, val, sub) in tokens:
-            if key == 'wv':
-                ob.vertex_groups.assign(int(val[0]), group, float(val[1]), 'REPLACE')
+        ob.vertex_groups.assign([int(val[0]) for (key, val, sub) in tokens if key == 'wv'], group, float(val[1]), 'REPLACE')
     return