diff --git a/src/ex_getln.c b/src/ex_getln.c
index 5d7ea20..33d612b 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3691,20 +3691,37 @@
     /* Find longest common part */
     if (mode == WILD_LONGEST && xp->xp_numfiles > 0)
     {
-	for (len = 0; xp->xp_files[0][len]; ++len)
+	int mb_len = 1;
+	int c0, ci;
+
+	for (len = 0; xp->xp_files[0][len]; len += mb_len)
 	{
-	    for (i = 0; i < xp->xp_numfiles; ++i)
+#ifdef FEAT_MBYTE
+	    if (has_mbyte)
 	    {
+		mb_len = (*mb_ptr2len)(&xp->xp_files[0][len]);
+		c0 =(* mb_ptr2char)(&xp->xp_files[0][len]);
+	    }
+	    else
+#endif
+		c0 = xp->xp_files[i][len];
+	    for (i = 1; i < xp->xp_numfiles; ++i)
+	    {
+#ifdef FEAT_MBYTE
+		if (has_mbyte)
+		    ci =(* mb_ptr2char)(&xp->xp_files[i][len]);
+		else
+#endif
+		    ci = xp->xp_files[i][len];
 		if (p_fic && (xp->xp_context == EXPAND_DIRECTORIES
 			|| xp->xp_context == EXPAND_FILES
 			|| xp->xp_context == EXPAND_SHELLCMD
 			|| xp->xp_context == EXPAND_BUFFERS))
 		{
-		    if (TOLOWER_LOC(xp->xp_files[i][len]) !=
-					    TOLOWER_LOC(xp->xp_files[0][len]))
+		    if (MB_TOLOWER(c0) != MB_TOLOWER(ci))
 			break;
 		}
-		else if (xp->xp_files[i][len] != xp->xp_files[0][len])
+		else if (c0 != ci)
 		    break;
 	    }
 	    if (i < xp->xp_numfiles)
@@ -3714,6 +3731,7 @@
 		break;
 	    }
 	}
+
 	ss = alloc((unsigned)len + 1);
 	if (ss)
 	    vim_strncpy(ss, xp->xp_files[0], (size_t)len);
diff --git a/src/testdir/test_utf8.in b/src/testdir/test_utf8.in
index 8bc783e..1156342 100644
--- a/src/testdir/test_utf8.in
+++ b/src/testdir/test_utf8.in
@@ -17,6 +17,25 @@
 :	$put=strchars(str, 0)
 :	$put=strchars(str, 1)
 :endfor
+:" Test for customlist completion
+:function! CustomComplete1(lead, line, pos)
+:	return ['あ', 'い']
+:endfunction
+:command -nargs=1 -complete=customlist,CustomComplete1 Test1 :
+:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 't')
+:
+:function! CustomComplete2(lead, line, pos)
+:	return ['あたし', 'あたま', 'あたりめ']
+:endfunction
+:command -nargs=1 -complete=customlist,CustomComplete2 Test2 :
+:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 't')
+:
+:function! CustomComplete3(lead, line, pos)
+:	return ['Nこ', 'Nん', 'Nぶ']
+:endfunction
+:command -nargs=1 -complete=customlist,CustomComplete3 Test3 :
+:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 't')
+:
 :call garbagecollect(1)
 :/^start:/,$wq! test.out
 ENDTEST
diff --git a/src/testdir/test_utf8.ok b/src/testdir/test_utf8.ok
index 8ccdd6d..c655922 100644
--- a/src/testdir/test_utf8.ok
+++ b/src/testdir/test_utf8.ok
@@ -17,3 +17,6 @@
 1
 1
 1
+Test1 
+Test2 あた
+Test3 N
diff --git a/src/version.c b/src/version.c
index 5633841..20e0e9f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    926,
+/**/
     925,
 /**/
     924,
