diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index 3f55a345edfbd456ed8585233bf9a4b08ff849db..ced329fb2276376322e05cb669c2ef7226e164f0 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -1228,13 +1228,13 @@ BOOL doterm(struct bbslist *bbs)
 		sleep=TRUE;
 		if(!speed && bbs->bpsrate)
 			speed = bbs->bpsrate;
-		if(speed)
-			thischar=xp_timer();
-
 		if(!term.nostatus)
 			update_status(bbs, speed);
 		for(remain=conn_data_waiting() /* Hack for connection check */ + (!conn_connected()); remain; remain--) {
-			if((!speed) /* || thischar < lastchar Wrapped */ || thischar >= nextchar) {
+			if(speed)
+				thischar=xp_timer();
+
+			if((!speed) || thischar < lastchar /* Wrapped */ || thischar >= nextchar) {
 				/* Get remote input */
 				inch=recv_byte(NULL, 0);