--- linux-2.2.16/drivers/net/ppp.c	Sat Jan 13 18:40:46 2001
+++ linux/drivers/net/ppp.c	Sat Jan 13 18:42:49 2001
@@ -1313,6 +1313,34 @@
 		}
 
 		/*
+		 * Handles software flow control of output.
+		 */
+
+		if (I_IXON(tty)) {
+			if (chr == STOP_CHAR(tty)) {
+				if (!tty->stopped) {
+					tty->stopped = 1;
+					if (tty->driver.stop)
+						(tty->driver.stop)(tty);
+				}
+				continue;
+			}
+			if (chr == START_CHAR(tty)) {
+				if (tty->stopped) {
+					tty->stopped = 0;
+					if (tty->driver.start)
+						(tty->driver.start)(tty);
+					if ((test_bit(TTY_DO_WRITE_WAKEUP, &tty->flags)) &&
+					    tty->ldisc.write_wakeup)
+						(tty->ldisc.write_wakeup)(tty);
+					wake_up_interruptible(&tty->write_wait);
+					wake_up_interruptible(&tty->poll_wait);
+				}
+				continue;
+			}
+		}
+
+		/*
 		 * Set the flags for d7 being 0/1 and parity being
 		 * even/odd so that the normal processing would have
 		 * all flags set at the end of the session.  A
