diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index de22dcb..13f5065 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -1425,7 +1425,7 @@
 		    EMSG(_(e_nopresub));
 		    return FAIL;
 		}
-		for (lp = reg_prev_sub; *lp != NUL; mb_cptr_adv(lp))
+		for (lp = reg_prev_sub; *lp != NUL; MB_CPTR_ADV(lp))
 		{
 		    EMIT(PTR2CHAR(lp));
 		    if (lp != reg_prev_sub)
@@ -1672,7 +1672,7 @@
 		    else
 			EMIT(result);
 		    regparse = endp;
-		    mb_ptr_adv(regparse);
+		    MB_PTR_ADV(regparse);
 		    return OK;
 		}
 		/*
@@ -1684,7 +1684,7 @@
 		if (*regparse == '^')			/* negated range */
 		{
 		    negated = TRUE;
-		    mb_ptr_adv(regparse);
+		    MB_PTR_ADV(regparse);
 		    EMIT(NFA_START_NEG_COLL);
 		}
 		else
@@ -1694,7 +1694,7 @@
 		    startc = '-';
 		    EMIT(startc);
 		    EMIT(NFA_CONCAT);
-		    mb_ptr_adv(regparse);
+		    MB_PTR_ADV(regparse);
 		}
 		/* Emit the OR branches for each character in the [] */
 		emit_range = FALSE;
@@ -1797,7 +1797,7 @@
 		    {
 			emit_range = TRUE;
 			startc = oldstartc;
-			mb_ptr_adv(regparse);
+			MB_PTR_ADV(regparse);
 			continue;	    /* reading the end of the range */
 		    }
 
@@ -1817,7 +1817,7 @@
 			    )
 			)
 		    {
-			mb_ptr_adv(regparse);
+			MB_PTR_ADV(regparse);
 
 			if (*regparse == 'n')
 			    startc = reg_string ? NL : NFA_NEWL;
@@ -1832,7 +1832,7 @@
 				/* TODO(RE) This needs more testing */
 				startc = coll_get_char();
 				got_coll_char = TRUE;
-				mb_ptr_back(old_regparse, regparse);
+				MB_PTR_BACK(old_regparse, regparse);
 			    }
 			    else
 			    {
@@ -1932,10 +1932,10 @@
 			}
 		    }
 
-		    mb_ptr_adv(regparse);
+		    MB_PTR_ADV(regparse);
 		} /* while (p < endp) */
 
-		mb_ptr_back(old_regparse, regparse);
+		MB_PTR_BACK(old_regparse, regparse);
 		if (*regparse == '-')	    /* if last, '-' is just a char */
 		{
 		    EMIT('-');
@@ -1944,7 +1944,7 @@
 
 		/* skip the trailing ] */
 		regparse = endp;
-		mb_ptr_adv(regparse);
+		MB_PTR_ADV(regparse);
 
 		/* Mark end of the collection. */
 		if (negated == TRUE)
