updated for version 7.0-167
diff --git a/src/eval.c b/src/eval.c
index f0d38df..e54d500 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -18539,12 +18539,14 @@
 
     if (!eap->skip)
     {
-	/* Check the name of the function. */
+	/* Check the name of the function.  Unless it's a dictionary function
+	 * (that we are overwriting). */
 	if (name != NULL)
 	    arg = name;
 	else
 	    arg = fudi.fd_newkey;
-	if (arg != NULL)
+	if (arg != NULL && (fudi.fd_di == NULL
+				     || fudi.fd_di->di_tv.v_type != VAR_FUNC))
 	{
 	    if (*arg == K_SPECIAL)
 		j = 3;
diff --git a/src/version.c b/src/version.c
index f0bb45a..550137e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    167,
+/**/
     166,
 /**/
     165,