diff --git a/src/ops.c b/src/ops.c
index 8b883aa..23856c8 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -486,7 +486,7 @@
 	 * the part of which is displayed at the block's beginning. Let's start
 	 * searching from the next character. */
 	if (bd.startspaces)
-	    mb_ptr_adv(non_white);
+	    MB_PTR_ADV(non_white);
 
 	/* The character's column is in "bd.start_vcol".  */
 	non_white_col = bd.start_vcol;
@@ -526,7 +526,7 @@
 	    if (verbatim_copy_width + incr > destination_col)
 		break;
 	    verbatim_copy_width += incr;
-	    mb_ptr_adv(verbatim_copy_end);
+	    MB_PTR_ADV(verbatim_copy_end);
 	}
 
 	/* If "destination_col" is different from the width of the initial
@@ -3458,7 +3458,7 @@
 		goto end;
 	    p = ml_get_cursor();
 	    if (dir == FORWARD && *p != NUL)
-		mb_ptr_adv(p);
+		MB_PTR_ADV(p);
 	    ptr = vim_strsave(p);
 	    if (ptr == NULL)
 		goto end;
@@ -3468,7 +3468,7 @@
 	    oldp = ml_get_curline();
 	    p = oldp + curwin->w_cursor.col;
 	    if (dir == FORWARD && *p != NUL)
-		mb_ptr_adv(p);
+		MB_PTR_ADV(p);
 	    ptr = vim_strnsave(oldp, p - oldp);
 	    if (ptr == NULL)
 		goto end;
@@ -4489,11 +4489,11 @@
 	    if (has_mbyte)
 	    {
 		cend = curr + currsize;
-		mb_ptr_back(curr, cend);
+		MB_PTR_BACK(curr, cend);
 		endcurr1 = (*mb_ptr2char)(cend);
 		if (cend > curr)
 		{
-		    mb_ptr_back(curr, cend);
+		    MB_PTR_BACK(curr, cend);
 		    endcurr2 = (*mb_ptr2char)(cend);
 		}
 	    }
@@ -5262,7 +5262,7 @@
 	}
 #endif
 	prev_pstart = pstart;
-	mb_ptr_adv(pstart);
+	MB_PTR_ADV(pstart);
     }
     bdp->start_char_vcols = incr;
     if (bdp->start_vcol < oap->start_vcol)	/* line too short */
