1 diff --git a/luit.c b/luit.c
2 index 0ece7b6..a0b62cb 100644
5 @@ -25,6 +25,7 @@ THE SOFTWARE.
9 +#include <X11/Xosdefs.h>
13 @@ -36,6 +37,7 @@ THE SOFTWARE.
15 #include <sys/ioctl.h>
21 @@ -483,9 +485,11 @@ setup_io(int pty)
23 installHandler(SIGCHLD, sigchldHandler);
26 rc = copyTermios(0, pty);
28 FatalError("Couldn't copy terminal settings\n");
33 @@ -627,6 +631,10 @@ child(char *line, char *path, char *const argv[])
34 write_waitpipe(c2p_waitpipe);
38 + restoreTermios_1(tty, TCSAFLUSH);
44 diff --git a/sys.c b/sys.c
45 index 8463b05..adda4b5 100644
48 @@ -24,6 +24,7 @@ THE SOFTWARE.
52 +#include <X11/Xosdefs.h>
56 @@ -246,6 +247,14 @@ restoreTermios(void)
60 +restoreTermios_1(int fd, int opt)
62 + if(!saved_tio_valid)
64 + return tcsetattr(fd, opt, &saved_tio);
71 diff --git a/sys.h b/sys.h
72 index 5bfe0d2..3d95f20 100644
75 @@ -38,6 +38,7 @@ int installHandler(int signum, void (*handler) (int));
76 int copyTermios(int sfd, int dfd);
77 int saveTermios(void);
78 int restoreTermios(void);
79 +int restoreTermios_1(int fd, int opt);
80 int setRawTermios(void);
81 char *my_basename(char *path);
82 int allocatePty(int *pty_return, char **line_return);