diff --git a/add_mesh_3d_function_surface.py b/add_mesh_3d_function_surface.py
index 322ae7073ebe49f9ae313f29c5457cfdd2bec3e5..923817b8c28c72e6cd49856d72c60eb707d4dfe0 100644
--- a/add_mesh_3d_function_surface.py
+++ b/add_mesh_3d_function_surface.py
@@ -138,7 +138,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/add_mesh_BoltFactory/createMesh.py b/add_mesh_BoltFactory/createMesh.py
index 4cec092d5e1e54e315a1c0a89187c057c27c1c6b..36e793b62c3d279bae989445b7817db3619872af 100644
--- a/add_mesh_BoltFactory/createMesh.py
+++ b/add_mesh_BoltFactory/createMesh.py
@@ -2092,7 +2092,7 @@ def create_mesh_object(context, verts, edges, faces, name, edit, align_matrix):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     # Deselect all objects.
     bpy.ops.object.select_all(action='DESELECT')
diff --git a/add_mesh_ant_landscape.py b/add_mesh_ant_landscape.py
index f0a38b328d63a28ad3762a9b787211bbcf1f2382..d7d1e17da1a644a9632062b6c5fd018f29de00af 100644
--- a/add_mesh_ant_landscape.py
+++ b/add_mesh_ant_landscape.py
@@ -92,7 +92,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/add_mesh_extras.py b/add_mesh_extras.py
index 423677f42af79127a30297bc761d66664a87c9fe..6cb83e10cfbb55dbc5ad3ce4e95e10f49a027804 100644
--- a/add_mesh_extras.py
+++ b/add_mesh_extras.py
@@ -51,7 +51,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/add_mesh_gears.py b/add_mesh_gears.py
index a623ce48f76c9e26e5bae26e736e3a3fffa629f0..8f1fa9c83e139d3ab013975651746cfb072392de 100644
--- a/add_mesh_gears.py
+++ b/add_mesh_gears.py
@@ -84,7 +84,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/add_mesh_gemstones.py b/add_mesh_gemstones.py
index 3cd37157a169ccf8fd627250cea36cf86c78e0c5..187696be3786d7a0e20394bbba66a9fbd1428df0 100644
--- a/add_mesh_gemstones.py
+++ b/add_mesh_gemstones.py
@@ -51,7 +51,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/add_mesh_pipe_joint.py b/add_mesh_pipe_joint.py
index 168bd59764cf85b9c520c14cc90e9d13c9817437..ce12232c5b276a22e751a2a6b6d3294237bdc39c 100644
--- a/add_mesh_pipe_joint.py
+++ b/add_mesh_pipe_joint.py
@@ -146,7 +146,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/add_mesh_solid.py b/add_mesh_solid.py
index 5bf081283e13eee2415fe58873a0d3b294e397d2..8e9c35f7b9b9429fdea42df7ce2fc7c1b591050b 100644
--- a/add_mesh_solid.py
+++ b/add_mesh_solid.py
@@ -55,7 +55,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/add_mesh_twisted_torus.py b/add_mesh_twisted_torus.py
index e33cf9c173bfc57bf8b8b09c1a7047c7a89b7f4a..bb6afc36890aa0434d04f35640a38efee0300535 100644
--- a/add_mesh_twisted_torus.py
+++ b/add_mesh_twisted_torus.py
@@ -67,7 +67,7 @@ def create_mesh_object(context, verts, edges, faces, name):
     mesh.from_pydata(verts, edges, faces)
 
     # Update mesh geometry after adding stuff.
-    mesh.update()
+    mesh.update_tag()
 
     import add_object_utils
     return add_object_utils.object_data_add(context, mesh, operator=None)
diff --git a/animation_add_corrective_shape_key.py b/animation_add_corrective_shape_key.py
index 49967b10343b15fdcacb22b1b1cb7fa15ab6d80a..bf07145b043c6ae9cc1f0155c025232ed5e69590 100644
--- a/animation_add_corrective_shape_key.py
+++ b/animation_add_corrective_shape_key.py
@@ -121,7 +121,7 @@ def applyX(ob, mesh, x ):
         v = mesh[i]
         v.co = x[i]
     
-    ob.data.update()
+    ob.data.update_tag()
     
     return x
 
@@ -141,7 +141,7 @@ def func_add_corrective_pose_shape( source, target):
     except:
         basis = ob_1.shape_key_add()
         basis.name = "Basis"
-        ob_1.data.update()
+        ob_1.data.update_tag()
         
     
     key_index = ob_1.active_shape_key_index
@@ -212,7 +212,7 @@ def func_add_corrective_pose_shape( source, target):
     # set the new shape key value to 1.0, so we see the result instantly
     ob_1.active_shape_key.value = 1.0
     
-    #mesh_1.update()
+    #mesh_1.update_tag()
     ob_1.show_only_shape_key = False
     
 
@@ -387,7 +387,7 @@ def func_add_corrective_pose_shape_fast(source, target):
     except:
         basis = target.shape_key_add()
         basis.name = "Basis"
-        target.data.update()
+        target.data.update_tag()
     
     key_index = target.active_shape_key_index
 
@@ -440,7 +440,7 @@ def func_add_corrective_pose_shape_fast(source, target):
         pass
     
     target.show_only_shape_key = False
-    target.data.update()
+    target.data.update_tag()
     
 
 
diff --git a/io_convert_image_to_mesh_img/import_img.py b/io_convert_image_to_mesh_img/import_img.py
index 40813bf18eb1af4e118743baddd4556216849dc7..6810c3441d4a09957d252341d1c6e05a3d468459 100644
--- a/io_convert_image_to_mesh_img/import_img.py
+++ b/io_convert_image_to_mesh_img/import_img.py
@@ -648,7 +648,7 @@ class hirise_dtm_helper(object):
       me.faces.foreach_set("vertices_raw", faces)
 
       self.dbg('running update...')
-      me.update()
+      me.update_tag()
 
       bin_desc = self.bin_mode()
       if bin_desc == 'NONE':
diff --git a/io_import_images_as_planes.py b/io_import_images_as_planes.py
index 3156d29394b76af9ace0671de98aa72bb7b98970..ff09085a17013eae37944ab3d26cb29dfe60cc22 100644
--- a/io_import_images_as_planes.py
+++ b/io_import_images_as_planes.py
@@ -138,7 +138,7 @@ def create_image_plane(self, context, material):
 
     mesh_data = bpy.data.meshes.new(img.name)
     mesh_data.from_pydata(verts, [], faces)
-    mesh_data.update()
+    mesh_data.update_tag()
     add_object_data(context, mesh_data, operator=self)
     plane = context.scene.objects.active
     plane.data.uv_textures.new()
diff --git a/io_import_scene_mhx.py b/io_import_scene_mhx.py
index 3b74484631fdf6fe79eed768bc6ef7f43a260132..8f242a79b521b28837bc1af5708c5aa0d4a1ab1b 100644
--- a/io_import_scene_mhx.py
+++ b/io_import_scene_mhx.py
@@ -1217,7 +1217,7 @@ def parseMesh (args, tokens):
         me.from_pydata(verts, [], faces)
     else:
         me.from_pydata(verts, edges, [])
-    me.update()
+    me.update_tag()
     linkObject(ob, me)
         
     mats = []
diff --git a/io_import_scene_unreal_psk.py b/io_import_scene_unreal_psk.py
index 4fe9733327dbeab00d7aad168910932a851122d1..85a728af6a3d80cde855a4292b2c131fb6f38d5f 100644
--- a/io_import_scene_unreal_psk.py
+++ b/io_import_scene_unreal_psk.py
@@ -459,7 +459,7 @@ def pskimport(infile):
     #RWghts fields = PntIdx|BoneIdx|Weight
     RWghts.sort()
     printlog( "len(RWghts)=" + str(len(RWghts)) + "\n")
-    #Tmsh.update()
+    #Tmsh.update_tag()
     
     #set the Vertex Colors of the faces
     #face.v[n] = RWghts[0]
@@ -495,7 +495,7 @@ def pskimport(infile):
     
     me_ob.faces.foreach_set("vertices_raw", faces)
     me_ob.faces.foreach_set("use_smooth", [False] * len(me_ob.faces))
-    me_ob.update()
+    me_ob.update_tag()
     
     #===================================================================================================
     #UV Setup
diff --git a/io_mesh_ply/import_ply.py b/io_mesh_ply/import_ply.py
index 1dac3a8d1479d0d2af31b2b53814555fd6993b00..bc0a93ff028d72b475feff83a5d0ae56abe7c027 100644
--- a/io_mesh_ply/import_ply.py
+++ b/io_mesh_ply/import_ply.py
@@ -307,7 +307,7 @@ def load_ply(filepath):
                     for j, col in enumerate(f_col):
                         col.r, col.g, col.b = ply_col[j]
 
-    mesh.update()
+    mesh.update_tag()
 
     scn = bpy.context.scene
     #scn.objects.selected = [] # XXX25
diff --git a/io_mesh_raw/import_raw.py b/io_mesh_raw/import_raw.py
index b8e96209cfda8919ec654e6e7bf969664bfc3db4..40c45274e250a0b26e221520c0d920c2d6fc1d9b 100644
--- a/io_mesh_raw/import_raw.py
+++ b/io_mesh_raw/import_raw.py
@@ -106,7 +106,7 @@ def addMeshObj(mesh, objName):
     for o in scn.objects:
         o.select = False
 
-    mesh.update()
+    mesh.update_tag()
     nobj = bpy.data.objects.new(objName, mesh)
     scn.objects.link(nobj)
     nobj.select = True
diff --git a/io_mesh_stl/blender_utils.py b/io_mesh_stl/blender_utils.py
index 3d0ef076b7e908bfa5f74acd9f58069635b17f32..f1beaa3e2c2ac255d9b6f1411e5888f6a1df60f8 100644
--- a/io_mesh_stl/blender_utils.py
+++ b/io_mesh_stl/blender_utils.py
@@ -34,7 +34,7 @@ def create_and_link_mesh(name, faces, points):
     bpy.context.scene.objects.link(ob)
 
     # update mesh to allow proper display
-    mesh.update()
+    mesh.update_tag()
 
 
 def faces_from_mesh(ob, apply_modifier=False, triangulate=True):
diff --git a/io_scene_3ds/import_3ds.py b/io_scene_3ds/import_3ds.py
index 33abcd4de5f6f6020d68915b6ec5fd9e8aae0f9f..7a41878752e80ea337fe6c02ef1cd439368587d3 100644
--- a/io_scene_3ds/import_3ds.py
+++ b/io_scene_3ds/import_3ds.py
@@ -335,7 +335,7 @@ def process_next_chunk(file, previous_chunk, importedObjects, IMAGE_SEARCH):
             ob.matrix_local = contextMatrix_rot
 
         importedObjects.append(ob)
-        bmesh.update()
+        bmesh.update_tag()
 
     #a spare chunk
     new_chunk = chunk()
diff --git a/io_scene_fbx/export_fbx.py b/io_scene_fbx/export_fbx.py
index a5d173c5fae8d9d0de071d591ad992dc2c168816..eb4e8ed288811a87181d74c47c91443c3463f24e 100644
--- a/io_scene_fbx/export_fbx.py
+++ b/io_scene_fbx/export_fbx.py
@@ -1954,7 +1954,7 @@ def save(operator, context, filepath="",
         if ob_arms_orig_rest:
             for ob_base in bpy.data.objects:
                 if ob_base.type == 'ARMATURE':
-                    ob_base.update()
+                    ob_base.update_tag()
 
             # This causes the makeDisplayList command to effect the mesh
             scene.frame_set(scene.frame_current)
@@ -2104,7 +2104,7 @@ def save(operator, context, filepath="",
         if ob_arms_orig_rest:
             for ob_base in bpy.data.objects:
                 if ob_base.type == 'ARMATURE':
-                    ob_base.update()
+                    ob_base.update_tag()
             # This causes the makeDisplayList command to effect the mesh
             scene.frame_set(scene.frame_current)
 
diff --git a/io_scene_x3d/import_x3d.py b/io_scene_x3d/import_x3d.py
index b4b9fe09f7f45066bfe67d45b4c7b9964e0b31c0..f2c86fe8bb4e03d7a62251cf8ee032ac5a744d58 100644
--- a/io_scene_x3d/import_x3d.py
+++ b/io_scene_x3d/import_x3d.py
@@ -1700,7 +1700,7 @@ def importMesh_IndexedFaceSet(geom, bpyima, ancestry):
         #   bpymesh.faces.extend(faces, smooth=True)
 
     # bpymesh.calcNormals()
-    bpymesh.update()
+    bpymesh.update_tag()
 
     if len(bpymesh.faces) != len(faces):
         print('\tWarning: adding faces did not work! file is invalid, not adding UVs or vcolors')
@@ -1917,7 +1917,7 @@ def importMesh_PointSet(geom, ancestry):
     bpymesh.vertices.foreach_set("co", [a for v in points for a in v])
 
     # bpymesh.calcNormals()  # will just be dummy normals
-    bpymesh.update()
+    bpymesh.update_tag()
     return bpymesh
 
 GLOBALS['CIRCLE_DETAIL'] = 12
diff --git a/io_shape_mdd/import_mdd.py b/io_shape_mdd/import_mdd.py
index 02be14e97fa7f3c64dfd2d3c26c6a9aec959cb66..c0f1d0c3f3492398d7277b866d299b4c64ae2b9e 100644
--- a/io_shape_mdd/import_mdd.py
+++ b/io_shape_mdd/import_mdd.py
@@ -57,7 +57,7 @@ def load(operator, context, filepath, frame_start=0, frame_step=1):
     except:
         basis = obj.shape_key_add()
         basis.name = "Basis"
-        obj.data.update()
+        obj.data.update_tag()
 
     scene.frame_current = frame_start
 
@@ -76,7 +76,7 @@ def load(operator, context, filepath, frame_start=0, frame_step=1):
 
         for v in verts:  # 12 is the size of 3 floats
             v.co[:] = unpack('>3f', file.read(12))
-        #me.update()
+        # me.update_tag()
         obj.show_only_shape_key = False
 
         # insert keyframes
@@ -94,7 +94,7 @@ def load(operator, context, filepath, frame_start=0, frame_step=1):
         obj.data.shape_keys.keys[index].value = 0.0
         shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value")
 
-        obj.data.update()
+        obj.data.update_tag()
 
     for i in range(frames):
         UpdateMesh(obj, i)
diff --git a/mesh_surface_sketch.py b/mesh_surface_sketch.py
index df6f9f7fe17a1892ba05894e5e4f9461ae81b7a4..35a0e391e7c5d277954bd6f45938700ae7f02026 100644
--- a/mesh_surface_sketch.py
+++ b/mesh_surface_sketch.py
@@ -701,7 +701,7 @@ class GPENCIL_OT_surfsk_surface_add(bpy.types.Operator):
         
         me_surf.from_pydata(all_surface_verts_co, [], all_surface_faces)
         
-        me_surf.update()
+        me_surf.update_tag()
         
         ob_surface = bpy.data.objects.new(surf_me_name, me_surf)
         bpy.context.scene.objects.link(ob_surface)
diff --git a/modules/add_utils.py b/modules/add_utils.py
index bc54abc6cee5b40e624b890f88a075169846f6a8..27fc9d6da1b2b1e64a0b25bc29ef30d793024f91 100644
--- a/modules/add_utils.py
+++ b/modules/add_utils.py
@@ -82,7 +82,7 @@ def add_object_data(context, obdata, operator=None):
         ob.select = False
 
     obj_new = bpy.data.objects.new(obdata.name, obdata)
-    obj_new.update()
+    obj_new.update_tag()
 
     base = scene.objects.link(obj_new)
     base.select = True
diff --git a/object_cloud_gen.py b/object_cloud_gen.py
index 2ff1452268f23252a140fbb625aac5e907f212df..bf213b78bac0020716ae86df298472cd1668a0a3 100644
--- a/object_cloud_gen.py
+++ b/object_cloud_gen.py
@@ -163,7 +163,7 @@ def makeObjectIntoBoundBox(scene, object, sizeDifference, takeFromObject):
     mesh.from_pydata(addVerts, [], addFaces)
 
     # Update the mesh
-    mesh.update()
+    mesh.update_tag()
 
 def applyScaleRotLoc(scene, obj):
     # Deselect All
@@ -261,7 +261,7 @@ def convertParticlesToMesh(scene, particlesobj, destobj, replacemesh):
     meshPnts.from_pydata(listMeshPnts, [], [])
 
     # Update the mesh.
-    meshPnts.update()
+    meshPnts.update_tag()
 
 def combineObjects(scene, combined, listobjs):
     # scene is the current scene
diff --git a/rigify/rigs/biped/arm/fk.py b/rigify/rigs/biped/arm/fk.py
index 20ba89f274990143f6a961e9687640d0c5d88f1c..6cd8255fedcfa72ccdae7df76b0b3ca162a9b0f6 100644
--- a/rigify/rigs/biped/arm/fk.py
+++ b/rigify/rigs/biped/arm/fk.py
@@ -199,7 +199,7 @@ class Rig:
             edges = [(1, 2), (0, 3), (0, 4), (3, 5), (4, 6), (1, 6), (5, 7), (2, 7)]
             mesh = ob.data
             mesh.from_pydata(verts, edges, [])
-            mesh.update()
+            mesh.update_tag()
 
             mod = ob.modifiers.new("subsurf", 'SUBSURF')
             mod.levels = 2
diff --git a/rigify/rigs/biped/arm/ik.py b/rigify/rigs/biped/arm/ik.py
index 2b941b9e6cfb5cdc654de0fb56bf43ed9e3ef4ed..0824daca94fa059084e79a59ed92d1eae088bc9e 100644
--- a/rigify/rigs/biped/arm/ik.py
+++ b/rigify/rigs/biped/arm/ik.py
@@ -298,7 +298,7 @@ class Rig:
             edges = [(1, 2), (0, 3), (0, 4), (3, 5), (4, 6), (1, 6), (5, 7), (2, 7)]
             mesh = ob.data
             mesh.from_pydata(verts, edges, [])
-            mesh.update()
+            mesh.update_tag()
 
             mod = ob.modifiers.new("subsurf", 'SUBSURF')
             mod.levels = 2
diff --git a/rigify/rigs/biped/leg/fk.py b/rigify/rigs/biped/leg/fk.py
index a212d44585b45e19fd0967e4e66992238d394d14..8ed7e435a6ee0a7e254f2138b0d48b4c8990e8a4 100644
--- a/rigify/rigs/biped/leg/fk.py
+++ b/rigify/rigs/biped/leg/fk.py
@@ -237,7 +237,7 @@ class Rig:
             edges = [(1, 2), (0, 3), (0, 4), (3, 5), (4, 6), (1, 6), (5, 7), (2, 7)]
             mesh = ob.data
             mesh.from_pydata(verts, edges, [])
-            mesh.update()
+            mesh.update_tag()
 
             mod = ob.modifiers.new("subsurf", 'SUBSURF')
             mod.levels = 2
diff --git a/rigify/rigs/biped/leg/ik.py b/rigify/rigs/biped/leg/ik.py
index a04b57dc5ec7c12ce9d0762fe4e664ec1acece39..0505c2dc86b2f8f457cd6069dd1858a7cf6f9285 100644
--- a/rigify/rigs/biped/leg/ik.py
+++ b/rigify/rigs/biped/leg/ik.py
@@ -500,7 +500,7 @@ class Rig:
             edges = [(1, 2), (0, 3), (0, 4), (3, 5), (4, 6), (1, 6), (5, 7), (2, 7)]
             mesh = ob.data
             mesh.from_pydata(verts, edges, [])
-            mesh.update()
+            mesh.update_tag()
 
             mod = ob.modifiers.new("subsurf", 'SUBSURF')
             mod.levels = 2
@@ -511,7 +511,7 @@ class Rig:
             edges = [(1, 2), (0, 3), (0, 4), (3, 5), (1, 6), (4, 6), (2, 7), (5, 7)]
             mesh = ob.data
             mesh.from_pydata(verts, edges, [])
-            mesh.update()
+            mesh.update_tag()
 
             mod = ob.modifiers.new("subsurf", 'SUBSURF')
             mod.levels = 2
diff --git a/rigify/rigs/finger.py b/rigify/rigs/finger.py
index f5788d023fb94679b6c0f35dfa7b91f902a11753..298e94313bfc34a935cde7e6ef3a05eb00264089 100644
--- a/rigify/rigs/finger.py
+++ b/rigify/rigs/finger.py
@@ -261,7 +261,7 @@ class Rig:
                 verts = temp
             edges = [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 1)]
             mesh.from_pydata(verts, edges, [])
-            mesh.update()
+            mesh.update_tag()
 
         for bone in bones:
             create_limb_widget(self.obj, bone)
diff --git a/rigify/rigs/palm.py b/rigify/rigs/palm.py
index 5a0fa7737326b363f2c06042e8c1f144417a73f6..cec4bde02dfc2c189ac3a77cf926f3eaec45fc34 100644
--- a/rigify/rigs/palm.py
+++ b/rigify/rigs/palm.py
@@ -153,7 +153,7 @@ class Rig:
                 verts = temp
             edges = [(1, 2), (0, 3), (4, 7), (5, 6), (8, 0), (9, 3), (10, 1), (11, 2), (12, 6), (13, 7), (4, 14), (15, 5), (10, 8), (11, 9), (15, 14), (12, 13)]
             mesh.from_pydata(verts, edges, [])
-            mesh.update()
+            mesh.update_tag()
 
             mod = w.modifiers.new("subsurf", 'SUBSURF')
             mod.levels = 2
diff --git a/rigify/utils.py b/rigify/utils.py
index f0a19aac67f652bb4d81f7f70b2ad6fd8f176275..87aaf31e6a628be3b9bd0203f3a39346e7030c3a 100644
--- a/rigify/utils.py
+++ b/rigify/utils.py
@@ -275,7 +275,7 @@ def create_line_widget(rig, bone_name):
     if obj != None:
         mesh = obj.data
         mesh.from_pydata([(0, 0, 0), (0, 1, 0)], [(0, 1)], [])
-        mesh.update()
+        mesh.update_tag()
 
 
 def create_circle_widget(rig, bone_name, radius=1.0, head_tail=0.0):
@@ -290,7 +290,7 @@ def create_circle_widget(rig, bone_name, radius=1.0, head_tail=0.0):
         edges = [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10), (10, 11), (11, 12), (12, 13), (13, 14), (14, 15), (15, 16), (16, 17), (17, 18), (18, 19), (19, 20), (20, 21), (21, 22), (22, 23), (23, 24), (24, 25), (25, 26), (26, 27), (27, 28), (28, 29), (29, 30), (30, 31), (0, 31)]
         mesh = obj.data
         mesh.from_pydata(verts, edges, [])
-        mesh.update()
+        mesh.update_tag()
         return obj
     else:
         return None
@@ -305,7 +305,7 @@ def create_sphere_widget(rig, bone_name):
         edges = [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10), (10, 11), (11, 12), (12, 13), (13, 14), (14, 15), (0, 15), (16, 31), (16, 17), (17, 18), (18, 19), (19, 20), (20, 21), (21, 22), (22, 23), (23, 24), (24, 25), (25, 26), (26, 27), (27, 28), (28, 29), (29, 30), (30, 31), (32, 33), (33, 34), (34, 35), (35, 36), (36, 37), (37, 38), (38, 39), (39, 40), (40, 41), (41, 42), (42, 43), (43, 44), (44, 45), (45, 46), (46, 47), (32, 47)]
         mesh = obj.data
         mesh.from_pydata(verts, edges, [])
-        mesh.update()
+        mesh.update_tag()
 
 
 def create_limb_widget(rig, bone_name):
@@ -318,7 +318,7 @@ def create_limb_widget(rig, bone_name):
         edges = [(0, 1), (2, 3), (4, 3), (5, 4), (5, 6), (6, 7), (8, 7), (8, 9), (10, 9), (10, 11), (11, 12), (13, 12), (14, 13), (14, 15), (16, 15), (16, 17), (17, 18), (19, 18), (19, 20), (21, 20), (21, 22), (22, 23), (24, 23), (25, 24), (25, 26), (27, 26), (27, 28), (29, 28), (29, 30), (30, 31), (32, 31), (32, 33), (2, 33)]
         mesh = obj.data
         mesh.from_pydata(verts, edges, [])
-        mesh.update()
+        mesh.update_tag()
 
 
 def create_bone_widget(rig, bone_name):
@@ -330,7 +330,7 @@ def create_bone_widget(rig, bone_name):
         edges = [(1, 2), (0, 1), (0, 3), (2, 3), (4, 5), (5, 6), (6, 7), (4, 7), (1, 5), (0, 4), (2, 6), (3, 7)]
         mesh = obj.data
         mesh.from_pydata(verts, edges, [])
-        mesh.update()
+        mesh.update_tag()
 
 
 def create_root_widget(rig, bone_name):
@@ -342,7 +342,7 @@ def create_root_widget(rig, bone_name):
         edges = [(0, 4), (1, 5), (2, 6), (3, 7), (4, 8), (5, 9), (6, 10), (7, 11), (8, 12), (9, 13), (10, 14), (11, 15), (16, 20), (17, 21), (18, 22), (19, 23), (20, 24), (21, 25), (22, 26), (23, 27), (0, 24), (1, 25), (2, 26), (3, 27), (16, 28), (17, 29), (18, 30), (19, 31), (12, 32), (13, 33), (14, 34), (15, 35), (28, 36), (29, 37), (30, 38), (31, 39), (32, 40), (33, 41), (34, 42), (35, 43), (36, 44), (37, 45), (38, 44), (39, 45), (40, 46), (41, 46), (42, 47), (43, 47)]
         mesh = obj.data
         mesh.from_pydata(verts, edges, [])
-        mesh.update()
+        mesh.update_tag()
 
 
 #=============================================
diff --git a/space_view3d_materials_utils.py b/space_view3d_materials_utils.py
index 7923a42137e9dfd40d0d710df7da9f7106038624..925b57f2c17048603adc7c4c6d06f7fb9576a8e3 100644
--- a/space_view3d_materials_utils.py
+++ b/space_view3d_materials_utils.py
@@ -220,7 +220,7 @@ def mat_to_texface():
                     else:
                         uvtex[f.index].use_image = False
 
-        me.update()
+        me.update_tag()
         
     
     if editmode: