diff --git a/src/channel.c b/src/channel.c
index c62da8b..de2f50d 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -5742,7 +5742,6 @@
     item = dictitem_alloc((char_u *)"channel");
     if (item == NULL)
 	return;
-    item->di_tv.v_lock = 0;
     item->di_tv.v_type = VAR_CHANNEL;
     item->di_tv.vval.v_channel = job->jv_channel;
     if (job->jv_channel != NULL)
diff --git a/src/dict.c b/src/dict.c
index e1f7fa2..c359e6f 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -188,7 +188,8 @@
 /*
  * Allocate a Dictionary item.
  * The "key" is copied to the new item.
- * Note that the value of the item "di_tv" still needs to be initialized!
+ * Note that the type and value of the item "di_tv" still needs to be
+ * initialized!
  * Returns NULL when out of memory.
  */
     dictitem_T *
@@ -201,6 +202,7 @@
     {
 	STRCPY(di->di_key, key);
 	di->di_flags = DI_FLAGS_ALLOC;
+	di->di_tv.v_lock = 0;
     }
     return di;
 }
@@ -338,7 +340,6 @@
     item = dictitem_alloc((char_u *)key);
     if (item == NULL)
 	return FAIL;
-    item->di_tv.v_lock = 0;
     item->di_tv.v_type = VAR_NUMBER;
     item->di_tv.vval.v_number = nr;
     if (dict_add(d, item) == FAIL)
@@ -361,7 +362,6 @@
     item = dictitem_alloc((char_u *)key);
     if (item == NULL)
 	return FAIL;
-    item->di_tv.v_lock = 0;
     item->di_tv.v_type = VAR_STRING;
     item->di_tv.vval.v_string = str != NULL ? vim_strsave(str) : NULL;
     if (dict_add(d, item) == FAIL)
@@ -384,7 +384,6 @@
     item = dictitem_alloc((char_u *)key);
     if (item == NULL)
 	return FAIL;
-    item->di_tv.v_lock = 0;
     item->di_tv.v_type = VAR_LIST;
     item->di_tv.vval.v_list = list;
     ++list->lv_refcount;
@@ -408,7 +407,6 @@
     item = dictitem_alloc((char_u *)key);
     if (item == NULL)
 	return FAIL;
-    item->di_tv.v_lock = 0;
     item->di_tv.v_type = VAR_DICT;
     item->di_tv.vval.v_dict = dict;
     ++dict->dv_refcount;
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 6887ca1..cb04635 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1524,7 +1524,6 @@
 	    di->di_tv.v_type = VAR_FUNC;
 	    di->di_tv.vval.v_string = vim_strsave(timer->tr_callback);
 	}
-	di->di_tv.v_lock = 0;
     }
 }
 
diff --git a/src/if_perl.xs b/src/if_perl.xs
index 7b45033..40955eb 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -1200,10 +1200,8 @@
 
 		    if ((item = dictitem_alloc((char_u *)key)) == NULL)
 			break;
-
-		    item->di_tv.v_type		= VAR_NUMBER;
-		    item->di_tv.v_lock		= 0;
-		    item->di_tv.vval.v_number	= 0;
+		    item->di_tv.v_type = VAR_NUMBER;
+		    item->di_tv.vval.v_number = 0;
 
 		    if (dict_add(dict, item) == FAIL) {
 			dictitem_free(item);
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 526cbd7..417f86c 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -1832,7 +1832,6 @@
 	    PyErr_NoMemory();
 	    return -1;
 	}
-	di->di_tv.v_lock = 0;
 	di->di_tv.v_type = VAR_UNKNOWN;
 
 	if (dict_add(dict, di) == FAIL)
@@ -2038,7 +2037,6 @@
 		    PyErr_NoMemory();
 		    return NULL;
 		}
-		di->di_tv.v_lock = 0;
 		di->di_tv.v_type = VAR_UNKNOWN;
 
 		valObject = PySequence_Fast_GET_ITEM(fast, 1);
@@ -5852,7 +5850,6 @@
 	    dict_unref(dict);
 	    return -1;
 	}
-	di->di_tv.v_lock = 0;
 
 	if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1)
 	{
@@ -5950,7 +5947,6 @@
 	    PyErr_NoMemory();
 	    return -1;
 	}
-	di->di_tv.v_lock = 0;
 
 	if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1)
 	{
diff --git a/src/userfunc.c b/src/userfunc.c
index 1c17737..71acaec 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -2390,7 +2390,6 @@
 		/* overwrite existing dict entry */
 		clear_tv(&fudi.fd_di->di_tv);
 	    fudi.fd_di->di_tv.v_type = VAR_FUNC;
-	    fudi.fd_di->di_tv.v_lock = 0;
 	    fudi.fd_di->di_tv.vval.v_string = vim_strsave(name);
 
 	    /* behave like "dict" was used */
diff --git a/src/version.c b/src/version.c
index dd3fb19..43d3616 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    167,
+/**/
     166,
 /**/
     165,
