diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index 529696e2699c397e57ab7e147d1dafab491c7634..b35e78719faa2a301e4ef464c498e8640d1b6a27 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -71,7 +71,7 @@ CIOLIBEXPORT cioapi_t	cio_api;
 static const int tabs[]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145};
 static int ungotch;
 struct text_info cio_textinfo;
-static int lastmode=3;
+static int lastmode=C80;
 CIOLIBEXPORT int _wscroll=1;
 CIOLIBEXPORT int directvideo=0;
 CIOLIBEXPORT int hold_update=0;
@@ -367,7 +367,7 @@ CIOLIBEXPORT int CIOLIBCALL initciolib(int mode)
 			cio_textinfo.normattr=14;
 			break;
 		default:
-			cio_textinfo.normattr=7;
+			cio_textinfo.normattr=LIGHTGRAY;
 	}
 	_beginthread(ciolib_mouse_thread,0,NULL);
 	return(0);
@@ -701,13 +701,15 @@ CIOLIBEXPORT void CIOLIBCALL ciolib_textmode(int mode)
 {
 	CIOLIB_INIT();
 
-	if(mode==-1) {
+	if(mode==LASTMODE) {
 		cio_api.textmode(lastmode);
 		lastmode=cio_textinfo.currmode;
 	}
 	else {
 		if(mode==64)
 			mode=C80X50;
+		if(mode==_ORIGMODE)
+			mode=C80;
 		lastmode=cio_textinfo.currmode;
 		cio_api.textmode(mode);
 	}