diff --git a/src/syncterm/syncterm.c b/src/syncterm/syncterm.c
index 9ef1df9cbc5d4a0a3b5653ef244c337291f95d2c..addb45a07fa9d183746c15e5ed9a4fd0c0f84228 100644
--- a/src/syncterm/syncterm.c
+++ b/src/syncterm/syncterm.c
@@ -223,8 +223,7 @@ int main(int argc, char **argv)
 			SAFECOPY(url,argv[i]);
     }
 
-	if(initciolib(ciolib_mode))
-		return(1);
+	initciolib(ciolib_mode);
 
     gettextinfo(&txtinfo);
 	if((txtinfo.screenwidth<40) || txtinfo.screenheight<24) {
diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index efdf62824349fdbf6e8a094f98779a16bd24d3bf..2c230b773f5b478ee35917443e5696ceb9ef56af 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -790,6 +790,7 @@ BOOL doterm(struct bbslist *bbs)
 
 	/* Main input loop */
 	oldmc=hold_update;
+	showmouse();
 	for(;;) {
 		hold_update=TRUE;
 		sleep=TRUE;
@@ -810,6 +811,7 @@ BOOL doterm(struct bbslist *bbs)
 						cterm_end();
 						conn_close();
 						uifcmsg("Disconnected","`Disconnected`\n\nRemote host dropped connection");
+						hidemouse();
 						return(FALSE);
 					}
 					break;
@@ -1003,6 +1005,7 @@ BOOL doterm(struct bbslist *bbs)
 							cterm_end();
 							free(scrollback);
 							conn_close();
+							hidemouse();
 							return(key==0x2d00 /* Alt-X? */);
 						}
 						uifcbail();
@@ -1030,6 +1033,7 @@ BOOL doterm(struct bbslist *bbs)
 							cterm_end();
 							free(scrollback);
 							conn_close();
+							hidemouse();
 							return(FALSE);
 						case 3:
 							begin_upload(bbs->uldir, FALSE);
@@ -1044,6 +1048,7 @@ BOOL doterm(struct bbslist *bbs)
 							cterm_end();
 							free(scrollback);
 							conn_close();
+							hidemouse();
 							return(TRUE);
 					}
 					gotoxy(i,j);
@@ -1077,5 +1082,6 @@ BOOL doterm(struct bbslist *bbs)
 			MAYBE_YIELD();
 	}
 
+	hidemouse();
 	return(FALSE);
 }