diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index 2bea8bc1aab95b036d3b4babdc77e875713a373f..ee75cea3498b73dcfe83da8b8c745c65f4d91a6f 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -714,14 +714,13 @@ early_return:
 /* Optional */
 CIOLIBEXPORT void CIOLIBCALL ciolib_gettextinfo(struct text_info *info)
 {
-
 	CIOLIB_INIT()
 
 	if(cio_api.gettextinfo) {
 		cio_api.gettextinfo(&cio_textinfo);
 		return;
 	}
-	
+
 	if(info!=&cio_textinfo)
 		*info=cio_textinfo;
 }
diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 9946285d3c7507e135dcfcbd5872730580e2c126..e5786569d0c6f2d4d5e7216601d2dc9b53ae9cf9 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -1455,7 +1455,8 @@ static void parse_sixel_string(struct cterminal *cterm, bool finish)
 	return;
 
 all_done:
-	vmode = find_vmode(cio_api.mode);
+	GETTEXTINFO(&ti);
+	vmode = find_vmode(ti.currmode);
 
 	if (cterm->sx_row_max_x)
 		setpixels(cterm->sx_left, cterm->sx_y, cterm->sx_row_max_x, cterm->sx_y + 6 * cterm->sx_iv - 1, cterm->sx_left, 0, cterm->sx_pixels, cterm->sx_mask);
@@ -1545,7 +1546,11 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 					case 'S':		// XTerm graphics query
 						if (seq->param_str[0] == '?' && parse_parameters(seq)) {
 							if (seq->param_int[0] == 2 && seq->param_int[1] == 1) {
-								int vmode = find_vmode(cio_api.mode);
+								struct text_info ti;
+								int vmode;
+
+								GETTEXTINFO(&ti);
+								vmode = find_vmode(ti.currmode)
 								sprintf(tmp, "\x1b[?2;0;%u;%uS", vparams[vmode].charwidth*cterm->width, vparams[vmode].charheight*cterm->height);
 								if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
 									strcat(retbuf, tmp);
@@ -1736,8 +1741,11 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 									break;
 								case 3:	/* Query font char dimensions */
 								{
+									struct text_info ti;
 									int vmode;
-									vmode = find_vmode(cio_api.mode);
+
+									GETTEXTINFO(&ti);
+									vmode = find_vmode(ti.currmode)
 									sprintf(tmp, "\x1b[=3;%u;%un", vparams[vmode].charheight, vparams[vmode].charwidth);
 									break;
 								}