diff --git a/src/filepath.c b/src/filepath.c
index cf401dc..4ddeeaf 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -30,26 +30,56 @@
 get_short_pathname(char_u **fnamep, char_u **bufp, int *fnamelen)
 {
     int		l, len;
-    char_u	*newbuf;
+    WCHAR	*newbuf;
+    WCHAR	*wfname;
 
-    len = *fnamelen;
-    l = GetShortPathName((LPSTR)*fnamep, (LPSTR)*fnamep, len);
+    len = MAXPATHL;
+    newbuf = malloc(len * sizeof(*newbuf));
+    if (newbuf == NULL)
+	return FAIL;
+
+    wfname = enc_to_utf16(*fnamep, NULL);
+    if (wfname == NULL)
+    {
+	vim_free(newbuf);
+	return FAIL;
+    }
+
+    l = GetShortPathNameW(wfname, newbuf, len);
     if (l > len - 1)
     {
 	// If that doesn't work (not enough space), then save the string
 	// and try again with a new buffer big enough.
-	newbuf = vim_strnsave(*fnamep, l);
+	WCHAR *newbuf_t = newbuf;
+	newbuf = vim_realloc(newbuf, (l + 1) * sizeof(*newbuf));
 	if (newbuf == NULL)
+	{
+	    vim_free(wfname);
+	    vim_free(newbuf_t);
 	    return FAIL;
-
-	vim_free(*bufp);
-	*fnamep = *bufp = newbuf;
-
+	}
 	// Really should always succeed, as the buffer is big enough.
-	l = GetShortPathName((LPSTR)*fnamep, (LPSTR)*fnamep, l+1);
+	l = GetShortPathNameW(wfname, newbuf, l+1);
     }
+    if (l != 0)
+    {
+	char_u *p = utf16_to_enc(newbuf, NULL);
+	if (p != NULL)
+	{
+	    vim_free(*bufp);
+	    *fnamep = *bufp = p;
+	}
+	else
+	{
+	    vim_free(wfname);
+	    vim_free(newbuf);
+	    return FAIL;
+	}
+    }
+    vim_free(wfname);
+    vim_free(newbuf);
 
-    *fnamelen = l;
+    *fnamelen = l == 0 ? l : STRLEN(*bufp);
     return OK;
 }
 
diff --git a/src/testdir/test_shortpathname.vim b/src/testdir/test_shortpathname.vim
index b884820..6b3f85f 100644
--- a/src/testdir/test_shortpathname.vim
+++ b/src/testdir/test_shortpathname.vim
@@ -1,6 +1,9 @@
 " Test for shortpathname ':8' extension.
 " Only for use on Win32 systems!
 
+set encoding=utf-8
+scriptencoding utf-8
+
 source check.vim
 CheckMSWindows
 
@@ -67,3 +70,20 @@
 
   exe "cd " . save_dir
 endfunc
+
+func Test_ColonEight_MultiByte()
+  let dir = 'Xtest'
+
+  let file = dir . '/日本語のファイル.txt'
+
+  call mkdir(dir)
+  call writefile([], file)
+
+  let sfile = fnamemodify(file, ':8')
+
+  call assert_notequal(file, sfile)
+  call assert_match('\~', sfile)
+
+  call delete(file)
+  call delete(dir, 'd')
+endfunc
diff --git a/src/version.c b/src/version.c
index 0e92901..324f40d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2234,
+/**/
     2233,
 /**/
     2232,
