diff -ruNp ppp-2.4.4b1.orig/pppd/auth.c ppp-2.4.4b1/pppd/auth.c
--- ppp-2.4.4b1.orig/pppd/auth.c	2005-08-28 07:22:48.000000000 +0200
+++ ppp-2.4.4b1/pppd/auth.c	2005-11-13 13:46:43.000000000 +0100
@@ -1420,8 +1420,10 @@ check_passwd(unit, auser, userlen, apass
 	    }
 	    if (secret[0] != 0 && !login_secret) {
 		/* password given in pap-secrets - must match */
+#ifndef NO_CRYPT_HACK
 		if ((cryptpap || strcmp(passwd, secret) != 0)
 		    && strcmp(crypt(passwd, secret), secret) != 0)
+#endif
 		    ret = UPAP_AUTHNAK;
 	    }
 	}
@@ -1623,8 +1625,10 @@ plogin(user, passwd, msg)
     /*
      * If no passwd, don't let them login.
      */
+#ifndef NO_CRYPT_HACK
     if (pw->pw_passwd == NULL || strlen(pw->pw_passwd) < 2
 	|| strcmp(crypt(passwd, pw->pw_passwd), pw->pw_passwd) != 0)
+#endif
 	return (UPAP_AUTHNAK);
 
 #endif /* #ifdef USE_PAM */
diff -ruNp ppp-2.4.4b1.orig/pppd/Makefile.linux ppp-2.4.4b1/pppd/Makefile.linux
--- ppp-2.4.4b1.orig/pppd/Makefile.linux	2005-11-13 13:48:07.000000000 +0100
+++ ppp-2.4.4b1/pppd/Makefile.linux	2005-11-13 13:48:01.000000000 +0100
@@ -117,10 +117,14 @@ CFLAGS   += -DHAS_SHADOW
 #LIBS     += -lshadow $(LIBS)
 endif
 
+ifdef NO_CRYPT_HACK
+CFLAGS += -DNO_CRYPT_HACK
+else
 ifneq ($(wildcard /usr/include/crypt.h),)
 CFLAGS  += -DHAVE_CRYPT_H=1
 LIBS	+= -lcrypt
 endif
+endif
 
 ifdef NEEDDES
 ifndef USE_CRYPT
