diff --git a/libexec/telnetd/sys_term.c b/libexec/telnetd/sys_term.c index 468655061fae..810e65af5e5a 100644 --- a/libexec/telnetd/sys_term.c +++ b/libexec/telnetd/sys_term.c @@ -1049,6 +1049,7 @@ extern void utmp_sig_notify P((int)); getptyslave() { register int t = -1; + char erase; #if !defined(CRAY) || !defined(NEWINIT) # ifdef LINEMODE @@ -1065,12 +1066,13 @@ getptyslave() * if linemode was turned on * terminal window size * terminal speed + * erase character * so that we can re-set them if we need to. */ # ifdef LINEMODE waslm = tty_linemode(); # endif - + erase = termbuf.c_cc[VERASE]; /* * Make sure that we don't have a controlling tty, and @@ -1157,6 +1159,8 @@ getptyslave() tty_rspeed((def_rspeed > 0) ? def_rspeed : 9600); tty_tspeed((def_tspeed > 0) ? def_tspeed : 9600); # ifdef LINEMODE + if (erase) + termbuf.c_cc[VERASE] = erase; if (waslm) tty_setlinemode(1); # endif /* LINEMODE */