diff --git a/src/text.c b/src/text.c
index 69b99b37ca25a3876469b01313e9517f5afd6698..1eb711ad04a5b55d872ea37e35317b9a1ea6f7a2 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1220,7 +1220,7 @@ void add_undo(undo_type action)
 			openfile->current->data[0] != '\0')
 	    u->xflags = WAS_FINAL_BACKSPACE;
     case DEL:
-	if (u->begin != strlen(openfile->current->data)) {
+	if (openfile->current->data[openfile->current_x] != '\0') {
 	    char *char_buf = charalloc(mb_cur_max() + 1);
 	    int char_len = parse_mbchar(&openfile->current->data[u->begin],
 						char_buf, NULL);