diff --git a/src/mark.c b/src/mark.c
index dd714d8..c7395f3 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -686,10 +686,11 @@
 
     if (mp->lnum == 0 || mp->lnum > curbuf->b_ml.ml_line_count)
 	return vim_strsave((char_u *)"-invalid-");
-    s = vim_strnsave(skipwhite(ml_get(mp->lnum)), (int)Columns);
+    // Allow for up to 5 bytes per character.
+    s = vim_strnsave(skipwhite(ml_get(mp->lnum)), (int)Columns * 5);
     if (s == NULL)
 	return NULL;
-    /* Truncate the line to fit it in the window */
+    // Truncate the line to fit it in the window.
     len = 0;
     for (p = s; *p != NUL; MB_PTR_ADV(p))
     {
diff --git a/src/testdir/test_marks.vim b/src/testdir/test_marks.vim
index d22f905..b05246e 100644
--- a/src/testdir/test_marks.vim
+++ b/src/testdir/test_marks.vim
@@ -80,7 +80,7 @@
   w!
 
   b Xone
-  let a=split(execute('marks'), "\n")
+  let a = split(execute('marks'), "\n")
   call assert_equal(9, len(a))
   call assert_equal('mark line  col file/text', a[0])
   call assert_equal(" '      2    0 bbb", a[1])
@@ -93,7 +93,7 @@
   call assert_equal(' .      2    0 bbb', a[8])
 
   b Xtwo
-  let a=split(execute('marks'), "\n")
+  let a = split(execute('marks'), "\n")
   call assert_equal(9, len(a))
   call assert_equal('mark line  col file/text', a[0])
   call assert_equal(" '      1    0 ccc", a[1])
@@ -107,7 +107,7 @@
 
   b Xone
   delmarks aB
-  let a=split(execute('marks aBcD'), "\n")
+  let a = split(execute('marks aBcD'), "\n")
   call assert_equal(2, len(a))
   call assert_equal('mark line  col file/text', a[0])
   call assert_equal(' D      2    0 Xtwo', a[1])
@@ -120,3 +120,22 @@
   call delete('Xtwo')
   %bwipe
 endfunc
+
+func Test_marks_cmd_multibyte()
+  if !has('multi_byte')
+    return
+  endif
+  new Xone
+  call setline(1, ['ááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá'])
+  norm! ma
+
+  let a = split(execute('marks a'), "\n")
+  call assert_equal(2, len(a))
+  let expected = ' a      1    0 '
+  while strwidth(expected) < &columns - 1
+    let expected .= 'á'
+  endwhile
+  call assert_equal(expected, a[1])
+
+  bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index 43d3616..ce1c55b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    168,
+/**/
     167,
 /**/
     166,
