diff --git a/src/syncterm/uifcinit.c b/src/syncterm/uifcinit.c
index f4ac62bd054212655187e0756b3858239f43873a..a7aa32c67e9102060bd91495048fd1c706ff29dc 100644
--- a/src/syncterm/uifcinit.c
+++ b/src/syncterm/uifcinit.c
@@ -21,6 +21,8 @@ static int uifc_initialized=0;
 static void (*bottomfunc)(int);
 int orig_ciolib_xlat;
 int orig_vidflags;
+int orig_x;
+int orig_y;
 
 int	init_uifc(BOOL scrn, BOOL bottom) {
 	int	i;
@@ -33,6 +35,8 @@ int	init_uifc(BOOL scrn, BOOL bottom) {
 		uifc.scrn_len=0;
 		orig_ciolib_xlat = ciolib_xlat;
 		orig_vidflags = getvideoflags();
+		orig_x=wherex();
+		orig_y=wherey();
 		setvideoflags(orig_vidflags&(CIOLIB_VIDEO_NOBLINK|CIOLIB_VIDEO_BGBRIGHT));
 		ciolib_xlat = TRUE;
 		uifc.chars = NULL;
@@ -80,6 +84,7 @@ void uifcbail(void)
 		ciolib_xlat = orig_ciolib_xlat;
 		setvideoflags(orig_vidflags);
 		loadfont(NULL);
+		gotoxy(orig_x, orig_y);
 	}
 	uifc_initialized=0;
 }