diff -car /usr/src/usr.sbin/ppp.orig/Makefile /usr/src/usr.sbin/ppp/Makefile
*** /usr/src/usr.sbin/ppp.orig/Makefile	Sun May 11 21:58:57 1997
--- /usr/src/usr.sbin/ppp/Makefile	Thu Aug  7 02:52:49 1997
***************
*** 8,13 ****
--- 8,14 ----
  	passwdauth.c sig.c
  #CFLAGS+= -DHAVE_SHELL_CMD_WITH_ANY_MODE
  CFLAGS += -Wall -DMSEXT -DPASSWDAUTH
+ CFLAGS += -DHAVE_PRECLOSE_SIGNAL
  LDADD += -lmd -lcrypt -lutil
  DPADD += ${LIBMD} ${LIBCRYPT} ${LIBUTIL}
  MAN8=	ppp.8
diff -car /usr/src/usr.sbin/ppp.orig/main.c /usr/src/usr.sbin/ppp/main.c
*** /usr/src/usr.sbin/ppp.orig/main.c	Wed May 14 10:21:29 1997
--- /usr/src/usr.sbin/ppp/main.c	Thu Aug  7 02:52:26 1997
***************
*** 227,232 ****
--- 227,245 ----
     }
  }
  
+ #ifdef HAVE_PRECLOSE_SIGNAL
+ static void
+ CloseSession_without_Cleanup(signo)
+ int signo;
+ {
+    pending_signal(SIGUSR1, CloseSession_without_Cleanup);
+    if (BGPid == 0) {
+      LogPrintf(LOG_PHASE_BIT, "Signal %d, LcpClose.\n", signo);
+      LcpClose();
+    }
+ }
+ #endif /* HAVE_PRECLOSE_SIGNAL */
+ 
  static void
  TerminalCont()
  {
***************
*** 374,379 ****
--- 387,395 ----
  #ifdef SIGALRM
    pending_signal(SIGALRM, SIG_IGN);
  #endif
+ #ifdef HAVE_PRECLOSE_SIGNAL
+   pending_signal(SIGUSR1, CloseSession_without_Cleanup);
+ #endif /* HAVE_PRECLOSE_SIGNAL */
    if(mode & MODE_INTER)
      {
  #ifdef SIGTSTP