diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp
index bfba19920f30e848d6650a8a7fbcbf7ed2e8660e..8ff3dfa343fefcdb7ce07732e454d86f11cd4b94 100644
--- a/src/sbbs3/xtrn.cpp
+++ b/src/sbbs3/xtrn.cpp
@@ -57,7 +57,6 @@
 	#endif
 
 	#include <termios.h>
-	static void setup_term(int fd, char* term);	
 #endif
 #define XTRN_IO_BUF_LEN 5000
 
@@ -1153,12 +1152,20 @@ int sbbs_t::external(char* cmdline, long mode, char* startup_dir)
 
 	if((mode&EX_INR) && (mode&EX_OUTR))  {
 		struct winsize winsize;
-		struct termios termp;
-		cfmakeraw(&termp);
+		struct termios term;
+		memset(&term,0,sizeof(term));
+		cfsetspeed(&term,B19200);
+		if(mode&EX_BIN)
+			cfmakeraw(&term);
+		else {
+			term.c_iflag = TTYDEF_IFLAG;
+			term.c_oflag = TTYDEF_OFLAG;
+			term.c_lflag = TTYDEF_LFLAG;
+		}
 		winsize.ws_row=rows;
 		// #warning Currently cols are forced to 80 apparently TODO
 		winsize.ws_col=80;
-		if((pid=forkpty(&in_pipe[1],NULL,&termp,&winsize))==-1) {
+		if((pid=forkpty(&in_pipe[1],NULL,&term,&winsize))==-1) {
 			pthread_mutex_unlock(&input_thread_mutex);
 			errormsg(WHERE,ERR_EXEC,cmdline,0);
 			return(-1);
@@ -1185,7 +1192,11 @@ int sbbs_t::external(char* cmdline, long mode, char* startup_dir)
 		}
 	}
 	if(pid==0) {	/* child process */
-		setup_term(0, startup->xtrn_term);
+		if(!(mode&EX_BIN))  {
+			static char	term_env[256];
+			sprintf(term_env,"TERM=%s",startup->xtrn_term);
+			putenv(term_env);
+		}
 #ifdef __FreeBSD__
 		if(!native)
 			chdir(cfg.node_dir);
@@ -1521,25 +1532,7 @@ char * sbbs_t::cmdstr(char *instr, char *fpath, char *fspec, char *outstr)
     return(cmd);
 }
 
-#ifdef __unix__
-void
-setup_term(int fd, char* term)
-{
-	struct termios tt;
-	char	str[256];
-	// Shoud set speed here...
-
-	tcgetattr(fd, &tt);
-	tt.c_iflag = TTYDEF_IFLAG;
-	tt.c_oflag = TTYDEF_OFLAG;
-	tt.c_lflag = TTYDEF_LFLAG;
-	tcsetattr(fd, TCSAFLUSH, &tt);
-
-	sprintf(str,"TERM=%s",term);
-	putenv(str);
-
-
-	/* The following termcap entry is nice:
+/* The following termcap entry is nice (for Unix):
 
 <---SNIP--->
 # Handy for HyperTerminal and such
@@ -1573,6 +1566,4 @@ ansi-bbs|ANSI terminals (emulators):\
 
 <---SNIP--->
 
-	*/
-}
-#endif
+*/