diff --git a/src/charset.c b/src/charset.c
index 3ea2ecb..eef2e89 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1493,7 +1493,6 @@
 {
     colnr_T	vcol;
     char_u	*ptr;		// points to current char
-    char_u	*posptr;	// points to char at pos->col
     char_u	*line;		// start of the line
     int		incr;
     int		head;
@@ -1509,24 +1508,6 @@
 
     vcol = 0;
     line = ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE);
-    if (pos->col == MAXCOL)
-	posptr = NULL;  // continue until the NUL
-    else
-    {
-	colnr_T i;
-
-	// In a few cases the position can be beyond the end of the line.
-	for (i = 0; i < pos->col; ++i)
-	    if (ptr[i] == NUL)
-	    {
-		pos->col = i;
-		break;
-	    }
-	posptr = ptr + pos->col;
-	if (has_mbyte)
-	    // always start on the first byte
-	    posptr -= (*mb_head_off)(line, posptr);
-    }
 
     init_chartabsize_arg(&cts, wp, pos->lnum, 0, line, line);
     cts.cts_max_head_vcol = -1;
@@ -1588,11 +1569,12 @@
 		    incr = g_chartab[c] & CT_CELL_MASK;
 	    }
 
-	    if (posptr != NULL && ptr >= posptr) // character at pos->col
+	    char_u *next_ptr = ptr + (*mb_ptr2len)(ptr);
+	    if (next_ptr - line > pos->col) // character at pos->col
 		break;
 
 	    vcol += incr;
-	    MB_PTR_ADV(ptr);
+	    ptr = next_ptr;
 	}
     }
     else
@@ -1620,12 +1602,12 @@
 		wp->w_virtcol_first_char = cts.cts_first_char;
 #endif
 
-	    if (posptr != NULL && cts.cts_ptr >= posptr)
-		// character at pos->col
+	    char_u *next_ptr = cts.cts_ptr + (*mb_ptr2len)(cts.cts_ptr);
+	    if (next_ptr - line > pos->col) // character at pos->col
 		break;
 
 	    cts.cts_vcol += incr;
-	    MB_PTR_ADV(cts.cts_ptr);
+	    cts.cts_ptr = next_ptr;
 	}
 	vcol = cts.cts_vcol;
 	ptr = cts.cts_ptr;
diff --git a/src/version.c b/src/version.c
index 47f2997..90b615e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    38,
+/**/
     37,
 /**/
     36,
