updated for version 7.1-046
diff --git a/src/regexp.c b/src/regexp.c
index bf0f67a..071663f 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -7014,7 +7014,14 @@
 #ifdef FEAT_MBYTE
 			    if (has_mbyte)
 			    {
-				int l = mb_ptr2len(s) - 1;
+				int l;
+
+				/* Copy composing characters separately, one
+				 * at a time. */
+				if (enc_utf8)
+				    l = utf_ptr2len(s) - 1;
+				else
+				    l = mb_ptr2len(s) - 1;
 
 				s += l;
 				len -= l;
diff --git a/src/version.c b/src/version.c
index c4e1de3..65fa188 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    46,
+/**/
     45,
 /**/
     44,