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;