diff --git a/src/cioxtrn/cioxtrn.c b/src/cioxtrn/cioxtrn.c
index 005936b4999804927747cfd3ef55129dfddfff23..91c061d31d32de91e0aa66a825b1e0f64bee15a6 100644
--- a/src/cioxtrn/cioxtrn.c
+++ b/src/cioxtrn/cioxtrn.c
@@ -22,7 +22,6 @@ void input_thread(void *args)
 
 	input_thread_running=1;
 	/* Request DoorWay mode */
-	printf("\033[=255h");
 	while(!terminate) {
 		if(kbhit()) {
 			key=getch();
@@ -290,11 +289,14 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE pinst, char *cmd, int cshow)
 
 	puttext_can_move=1;
 	initciolib(CIOLIB_MODE_ANSI);
+	ansi_ciolib_setdoorway(1);
 	gettextinfo(&ti);
 	FreeConsole();
 
-	if(!AllocConsole())
+	if(!AllocConsole()) {
+		ansi_ciolib_setdoorway(0);
 		return(1);
+	}
 
 	memset(&sec_attrib,0,sizeof(sec_attrib));
 	sec_attrib.nLength=sizeof(sec_attrib);
@@ -303,11 +305,13 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE pinst, char *cmd, int cshow)
 	console_output=CreateFile("CONOUT$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, &sec_attrib, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
 	if(console_output==INVALID_HANDLE_VALUE) {
 		printf("CONOUT Error: %u\r\n",GetLastError());
+		ansi_ciolib_setdoorway(0);
 		return(1);
 	}
 	console_input=CreateFile("CONIN$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, &sec_attrib, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
 	if(console_input==INVALID_HANDLE_VALUE) {
 		printf("CONIN Error: %u\r\n",GetLastError());
+		ansi_ciolib_setdoorway(0);
 		return(1);
 	}
 
@@ -345,6 +349,7 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE pinst, char *cmd, int cshow)
 			, &process_info
 			)) {
 		printf("Error: %u\r\n",GetLastError());
+		ansi_ciolib_setdoorway(0);
 		return(1);
 	}
 	CloseHandle(process_info.hThread);
@@ -361,14 +366,13 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE pinst, char *cmd, int cshow)
 				terminate=1;
 				while(input_thread_running || output_thread_running)
 					SLEEP(1);
-				/* Disable DoorWay mode */
-				printf("\033[=255l");
 				TerminateProcess(ntvdm,0);
 				CloseHandle(ntvdm);
 				CloseHandle(console_output);
 				CloseHandle(console_input);
 				CloseHandle(process_info.hProcess);
 				FreeConsole();
+				ansi_ciolib_setdoorway(0);
 				return(0);
 			}
 		}