diff --git a/src/text.c b/src/text.c
index 264c8657c742ef0fe0e3549db7caa6faf3fb754c..173e09358b1d2a3ed82f7f236cb1061a78370fbb 100644
--- a/src/text.c
+++ b/src/text.c
@@ -575,10 +575,9 @@ ssize_t break_line(const char *line, ssize_t goal, bool newline)
     assert(line != NULL);
 
     while (*line != '\0' && goal >= 0) {
-	int pos;
+	size_t pos = 0;
 
-	line_len = parse_mbchar(line, NULL, NULL);
-	pos = mbwidth(line);
+	line_len = parse_mbchar(line, NULL, &pos);
 
 	if (is_blank_mbchar(line) || (newline && *line == '\n')) {
 	    blank_loc = cur_loc;