diff --git a/add_mesh_gears.py b/add_mesh_gears.py
index 2ff134452b79e1dcbc315102722c8d001eeae29b..08495f310cca1f6d6023ec52d35a2f5e9c597080 100644
--- a/add_mesh_gears.py
+++ b/add_mesh_gears.py
@@ -40,9 +40,9 @@ unchanged (add_tooth, add_spoke, add_gear)
 Also, the vertex group API is changed a little bit but the concepts
 are the same:
 =========
-vertexgroup = ob.add_vertex_group('NAME_OF_VERTEXGROUP')
+vertexgroup = ob.vertex_groups.new('NAME_OF_VERTEXGROUP')
 for i in vertexgroup_vertex_indices:
-    ob.add_vertex_to_group(i, vertexgroup, weight, 'ADD')
+    ob.vertex_groups.assign_vertex(i, vertexgroup, weight, 'ADD')
 =========
 
 Now for some reason the name does not 'stick' and we have to set it this way:
@@ -784,13 +784,13 @@ class AddGear(bpy.types.Operator):
         obj = create_mesh_object(context, verts, [], faces, "Gear", props.edit, self.align_matrix)
 
         # Create vertex groups from stored vertices.
-        tipGroup = obj.add_vertex_group('Tips')
+        tipGroup = obj.vertex_groups.new('Tips')
         for vert in verts_tip:
-            obj.add_vertex_to_group(vert, tipGroup, 1.0, 'ADD')
+            obj.vertex_groups.assign(vert, tipGroup, 1.0, 'ADD')
 
-        valleyGroup = obj.add_vertex_group('Valleys')
+        valleyGroup = obj.vertex_groups.new('Valleys')
         for vert in verts_valley:
-            obj.add_vertex_to_group(vert, valleyGroup, 1.0, 'ADD')
+            obj.vertex_groups.assign(vert, valleyGroup, 1.0, 'ADD')
 
         return {'FINISHED'}
 
@@ -892,13 +892,13 @@ class AddWormGear(bpy.types.Operator):
             props.edit, self.align_matrix)
 
         # Create vertex groups from stored vertices.
-        tipGroup = obj.add_vertex_group('Tips')
+        tipGroup = obj.vertex_groups.new('Tips')
         for vert in verts_tip:
-            obj.add_vertex_to_group(vert, tipGroup, 1.0, 'ADD')
+            obj.vertex_groups.assign(vert, tipGroup, 1.0, 'ADD')
 
-        valleyGroup = obj.add_vertex_group('Valleys')
+        valleyGroup = obj.vertex_groups.new('Valleys')
         for vert in verts_valley:
-            obj.add_vertex_to_group(vert, valleyGroup, 1.0, 'ADD')
+            obj.vertex_groups.assign(vert, valleyGroup, 1.0, 'ADD')
 
         return {'FINISHED'}
 
diff --git a/io_import_scene_mhx.py b/io_import_scene_mhx.py
index 09ef1fb3c4f47de3e1264c7b0ef832bff2d18178..628d1c8aa01ed9f8cd18400f6f77354584f820e4 100644
--- a/io_import_scene_mhx.py
+++ b/io_import_scene_mhx.py
@@ -1260,12 +1260,12 @@ def parseVertexGroup(ob, me, args, tokens):
 		return
 
 	if (toggle & T_Armature) or (grpName in ['Eye_L', 'Eye_R', 'Gums', 'Head', 'Jaw', 'Left', 'Middle', 'Right', 'Scalp']):
-		group = ob.add_vertex_group(grpName)
+		group = ob.vertex_groups.new(grpName)
 		group.name = grpName
 		loadedData['VertexGroup'][grpName] = group
 		for (key, val, sub) in tokens:
 			if key == 'wv':
-				ob.add_vertex_to_group( int(val[0]), group, float(val[1]), 'REPLACE')
+				ob.vertex_groups.assign(int(val[0]), group, float(val[1]), 'REPLACE')
 	return