diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index e61e06f351f47b398ab9917d92845f071a6ee0c0..e8c0805b7f58fc7073b060d3ca02424891d78b7e 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -1023,9 +1023,10 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_putch(int a)
 	unsigned char a1=a;
 	unsigned char buf[2];
 	int i;
-	CIOLIB_INIT();
 	int old_puttext_can_move=puttext_can_move;
 
+	CIOLIB_INIT();
+
 	if(cio_api.putch)
 		return(cio_api.putch(a1));
 
@@ -1243,7 +1244,7 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_get_window_info(int *width, int *height, int
 }
 
 /* Optional */
-CIOLIBEXPORT int ciolib_beep(void)
+CIOLIBEXPORT int CIOLIBCALL ciolib_beep(void)
 {
 	if(cio_api.beep)
 		return(cio_api.beep());
diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h
index 9d4bd7fb9fb1d27d2368551b7ba82d090c0aa645..135eba12135818c62c79cabc167f6072b06b61ca 100644
--- a/src/conio/ciolib.h
+++ b/src/conio/ciolib.h
@@ -313,6 +313,7 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_setfont(int font, int force);
 CIOLIBEXPORT int CIOLIBCALL ciolib_getfont(void);
 CIOLIBEXPORT int CIOLIBCALL ciolib_loadfont(char *filename);
 CIOLIBEXPORT int CIOLIBCALL ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos);
+CIOLIBEXPORT int CIOLIBCALL ciolib_beep(void);
 
 /* DoorWay specific stuff that's only applicable to ANSI mode. */
 CIOLIBEXPORT void CIOLIBCALL ansi_ciolib_setdoorway(int enable);
@@ -367,6 +368,7 @@ CIOLIBEXPORT void CIOLIBCALL ansi_ciolib_setdoorway(int enable);
 	#define getfont()				ciolib_getfont()
 	#define loadfont(a)				ciolib_loadfont(a)
 	#define get_window_info(a,b,c,d)	ciolib_get_window_info(a,b,c,d)
+	#define beep()				ciolib_beep()
 #endif
 
 #ifdef WITH_SDL
diff --git a/src/conio/win32cio.c b/src/conio/win32cio.c
index c8adc0009ebcb3489ea1fcbab82f8b82cd16afb8..a9a5dc2617fa10022a10b212b3683d894f0a8c48 100644
--- a/src/conio/win32cio.c
+++ b/src/conio/win32cio.c
@@ -532,8 +532,8 @@ void win32_textmode(int mode)
 
 	cio_textinfo.attribute=7;
 	cio_textinfo.normattr=7;
-	cio_textinfo.currmode=vparams[modeisx].mode;
-	cio_textinfo.screenheightsz.Y;
+	cio_textinfo.currmode=vparams[modeidx].mode;
+	cio_textinfo.screenheight=sz.Y;
 	cio_textinfo.screenwidth=sz.X;
 	cio_textinfo.curx=1;
 	cio_textinfo.cury=1;
@@ -580,8 +580,8 @@ void win32_gotoxy(int x, int y)
 	COORD	cp;
 	HANDLE	h;
 
-	cio_terminfo.curx=x;
-	cio_terminfo.cury=y;
+	cio_textinfo.curx=x;
+	cio_textinfo.cury=y;
 	cp.X=x-1;
 	cp.Y=y-1;
 	if(!hold_update && (h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)