diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 1d6e6f1b1048d9be17004a3487a0665f3323b81f..b66fd8a17c9286371453e5132d3d29ecda5e07ad 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -2793,7 +2793,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 							TERM_XY(&col, &row);
 							col += seq->param_int[0];
 							if(col > TERM_MAXX)
-								i = TERM_MAXX;
+								col = TERM_MAXX;
 							GOTOXY(col, row);
 							break;
 						case 'j':	/* Character Position Backward */
@@ -2805,13 +2805,6 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 								col = TERM_MINX;
 							GOTOXY(col, row);
 							break;
-							seq_default(seq, 0, 1);
-							TERM_XY(&col, &row);
-							row += seq->param_int[0];
-							if(i>cterm->bottom_margin)
-								i=cterm->bottom_margin;
-							GOTOXY(1,i);
-							break;
 						// for case 'E' see case 'B'
 						// for case 'F' see case 'A'
 						case '`':
diff --git a/src/conio/utf8_codepages.c b/src/conio/utf8_codepages.c
index 9e87f895accdcaa7305bbb03684c34d38bda2ac3..e92a61963a9d7747dad3267f77f5ff4e7afce8de 100644
--- a/src/conio/utf8_codepages.c
+++ b/src/conio/utf8_codepages.c
@@ -213,9 +213,9 @@ cp437_to_utf8(const char *cp437str, size_t buflen, size_t *outlen)
 	for (idx = 0; idx < buflen; idx++) {
 		ch = cp437str[idx];
 		if (ch == 0)
-			cplen += 4;
+			cplen = 4;
 		else if (ch < 128)
-			cplen++;
+			cplen = 1;
 		else
 			cplen = utf8_bytes(ch - 128);
 		if (cplen == -1)