updated for version 7.1-330
diff --git a/src/misc1.c b/src/misc1.c
index f621a89..1992cf9 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -1880,15 +1880,20 @@
 # ifdef FEAT_MBYTE
     int		n;
 
-    for (i = 0; i < len; i += n)
-    {
-	n = (*mb_ptr2len)(p + i);
-	ins_char_bytes(p + i, n);
-    }
-# else
-    for (i = 0; i < len; ++i)
-	ins_char(p[i]);
+    if (has_mbyte)
+	for (i = 0; i < len; i += n)
+	{
+	    if (enc_utf8)
+		/* avoid reading past p[len] */
+		n = utfc_ptr2len_len(p + i, len - i);
+	    else
+		n = (*mb_ptr2len)(p + i);
+	    ins_char_bytes(p + i, n);
+	}
+    else
 # endif
+	for (i = 0; i < len; ++i)
+	    ins_char(p[i]);
 }
 #endif
 
diff --git a/src/version.c b/src/version.c
index f9b8886..5d19584 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    330,
+/**/
     329,
 /**/
     328,