diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index 1dbf2c7c1d24ef144567a3957a94c6c75dde40ff..1c9a8205b79cd169cc7f8b47b34f5e65af69edaa 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -4284,12 +4284,22 @@ doterm(struct bbslist *bbs)
                                                                 /* Have full sequence (Assumes
                                                                  * zrinit and zrqinit are same
                                                                  * length */
+								struct ciolib_screen *savscrn;
 								WRITE_OUTBUF();
 								suspend_rip(true);
+								savscrn = savescreen();
+								set_modepalette(palettes[COLOUR_PALETTE]);
+								setfont(0, false, 1);
+								setfont(0, false, 2);
+								setfont(0, false, 3);
+								setfont(0, false, 4);
+								setvideoflags(getvideoflags() & (CIOLIB_VIDEO_NOBLINK | CIOLIB_VIDEO_BGBRIGHT));
 								if (!strcmp((char *)zrqbuf, (char *)zrqinit))
 									zmodem_download(bbs);
 								else
 									begin_upload(bbs, true, inch);
+								restorescreen(savscrn);
+								freescreen(savscrn);
 								setup_mouse_events(&ms);
 								suspend_rip(false);
 								zrqbuf[0] = 0;