diff --git a/src/syncterm/conn_telnet.c b/src/syncterm/conn_telnet.c
index 85c4422bd7a67b3149b5f66c1bd163153cae5228..680146ca949e5e08d476fa28f4e14f15b6f57a37 100644
--- a/src/syncterm/conn_telnet.c
+++ b/src/syncterm/conn_telnet.c
@@ -151,6 +151,14 @@ telnet_connect(struct bbslist *bbs)
 
 	_beginthread(rlogin_output_thread, 0, NULL);
 	_beginthread(rlogin_input_thread, 0, bbs);
+	// Suppress Go Aheads (both directions)
+	request_telnet_opt(TELNET_WILL, TELNET_SUP_GA);
+	request_telnet_opt(TELNET_DO, TELNET_SUP_GA);
+	// Enable binary mode (both directions)
+	request_telnet_opt(TELNET_WILL, TELNET_BINARY_TX);
+	request_telnet_opt(TELNET_DO, TELNET_BINARY_TX);
+	// Request that the server echos
+	request_telnet_opt(TELNET_DO, TELNET_ECHO);
 
 	if (!bbs->hidepopups)
 		uifc.pop(NULL);