diff --git a/src/evalfunc.c b/src/evalfunc.c
index b389085..d53dda4 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5788,6 +5788,7 @@
     for (lnum = p1.lnum; lnum <= p2.lnum; lnum++)
     {
 	pos_T		ret_p1, ret_p2;
+	char_u		*line = ml_get(lnum);
 	colnr_T		line_len = ml_get_len(lnum);
 
 	if (region_type == MLINE)
@@ -5810,7 +5811,7 @@
 	    {
 		if (region_type == MBLOCK)
 		{
-		    ret_p1.col = bd.textcol;
+		    ret_p1.col = mb_prevptr(line, bd.textstart) - line + 1;
 		    ret_p1.coladd = bd.start_char_vcols
 					     - (bd.start_vcol - oa.start_vcol);
 		}
@@ -5829,7 +5830,7 @@
 	    }
 	    else if (bd.startspaces > 0)
 	    {
-		ret_p1.col = bd.textcol;
+		ret_p1.col = mb_prevptr(line, bd.textstart) - line + 1;
 		ret_p1.coladd = bd.start_char_vcols - bd.startspaces;
 	    }
 	    else
diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim
index e1c7cf5..95ac9a6 100644
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -2073,10 +2073,12 @@
           \ getregion(getpos('v'), getpos('.'), {'type': "\<C-v>" }))
     call assert_equal([
           \   [[bufnr('%'), 1, 5, 0], [bufnr('%'), 1, 5, 0]],
-          \   [[bufnr('%'), 2, 10, 1], [bufnr('%'), 2, 10, 2]],
+          \   [[bufnr('%'), 2, 7, 1], [bufnr('%'), 2, 7, 2]],
           \   [[bufnr('%'), 3, 5, 0], [bufnr('%'), 3, 5, 0]],
           \ ],
           \ getregionpos(getpos('v'), getpos('.'), {'type': "\<C-v>" }))
+    call assert_equal(['efghijk«', '🇦«🇧«🇨«🇩', '12345'],
+          \ getregion(getpos('v'), getpos('.'), {'type': 'v' }))
     call assert_equal([
           \   [[bufnr('%'), 1, 5, 0], [bufnr('%'), 1, 13, 0]],
           \   [[bufnr('%'), 2, 1, 0], [bufnr('%'), 2, 22, 0]],
@@ -2084,6 +2086,28 @@
           \ ],
           \ getregionpos(getpos('v'), getpos('.'), {'type': 'v' }))
 
+    call cursor(1, 5)
+    call feedkeys("\<Esc>\<C-v>5l2j", 'xt')
+    call assert_equal(['efghij', ' «🇨« ', '567890'],
+          \ getregion(getpos('v'), getpos('.'), {'type': "\<C-v>" }))
+    call assert_equal([
+          \   [[bufnr('%'), 1, 5, 0], [bufnr('%'), 1, 10, 0]],
+          \   [[bufnr('%'), 2, 7, 1], [bufnr('%'), 2, 19, 1]],
+          \   [[bufnr('%'), 3, 5, 0], [bufnr('%'), 3, 10, 0]],
+          \ ],
+          \ getregionpos(getpos('v'), getpos('.'), {'type': "\<C-v>" }))
+
+    call cursor(1, 4)
+    call feedkeys("\<Esc>\<C-v>02j", 'xt')
+    call assert_equal(['abcd', '🇦« ', '1234'],
+          \ getregion(getpos('v'), getpos('.'), {'type': "\<C-v>" }))
+    call assert_equal([
+          \   [[bufnr('%'), 1, 1, 0], [bufnr('%'), 1, 4, 0]],
+          \   [[bufnr('%'), 2, 1, 0], [bufnr('%'), 2, 7, 1]],
+          \   [[bufnr('%'), 3, 1, 0], [bufnr('%'), 3, 4, 0]],
+          \ ],
+          \ getregionpos(getpos('v'), getpos('.'), {'type': "\<C-v>" }))
+
     #" characterwise selection with multibyte chars
     call cursor(1, 1)
     call feedkeys("\<Esc>vj", 'xt')
diff --git a/src/version.c b/src/version.c
index ae37647..ac0bda0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    446,
+/**/
     445,
 /**/
     444,
