diff --git a/src/syncterm/modem.c b/src/syncterm/modem.c
index 43ae3eca5707fc0dfdc0ecaa95b9f48f32303178..95f552b78cb44ebc23f97a1c29a306f5fc2e006a 100644
--- a/src/syncterm/modem.c
+++ b/src/syncterm/modem.c
@@ -140,6 +140,10 @@ int modem_connect(struct bbslist *bbs)
 		return(-1);
 	}
 
+	/* drain keyboard input to avoid accidental cancel */
+	while(kbhit())
+		getch();
+
 	uifc.pop("Initializing...");
 
 	comWriteString(com, settings.mdm.init_string);
@@ -170,9 +174,6 @@ int modem_connect(struct bbslist *bbs)
 		conn_api.terminate=-1;
 		return(-1);
 	}
-	/* drain keyboard input to avoid accidental cancel */
-	while(kbhit())
-		getch();
 
 	uifc.pop(NULL);
 	uifc.pop("Dialing...");