--- /dev/null
+diff -Nur ppp-2.4.2/pppd.orig/auth.c ppp-2.4.2/pppd/auth.c
+--- ppp-2.4.2/pppd.orig/auth.c 2003-06-12 01:56:26.000000000 +0200
++++ ppp-2.4.2/pppd/auth.c 2004-09-18 16:10:54.004502160 +0200
+@@ -1506,8 +1506,11 @@
+ */
+
+ tty = devnam;
+- if (strncmp(tty, "/dev/", 5) == 0)
++ if (strncmp(tty, "/dev/", 5) == 0) {
+ tty += 5;
++ } else if (strncmp(tty, "/udev/", 6) == 0) {
++ tty += 6;
++ }
+ logwtmp(tty, user, ifname); /* Add wtmp login entry */
+
+ #if defined(_PATH_LASTLOG) && !defined(USE_PAM)
+@@ -1552,8 +1555,11 @@
+ char *tty;
+
+ tty = devnam;
+- if (strncmp(tty, "/dev/", 5) == 0)
++ if (strncmp(tty, "/dev/", 5) == 0) {
+ tty += 5;
++ } else if (strncmp(tty, "/udev/", 6) == 0) {
++ tty += 6;
++ }
+ logwtmp(tty, "", ""); /* Wipe out utmp logout entry */
+ #endif /* ! USE_PAM */
+ logged_in = 0;
+diff -Nur ppp-2.4.2/pppd.orig/options.c ppp-2.4.2/pppd/options.c
+--- ppp-2.4.2/pppd.orig/options.c 2004-01-13 05:02:07.000000000 +0100
++++ ppp-2.4.2/pppd/options.c 2004-09-18 17:05:09.334032064 +0200
+@@ -487,8 +487,11 @@
+ size_t pl;
+
+ dev = devnam;
+- if ((p = strstr(dev, "/dev/")) != NULL)
++ if ((p = strstr(dev, "/dev/")) != NULL) {
+ dev = p + 5;
++ } else if ((p = strstr(dev, "/udev/")) != NULL) {
++ dev = p + 6;
++ }
+ if (dev[0] == 0 || strcmp(dev, "tty") == 0)
+ return 1; /* don't look for /etc/ppp/options.tty */
+ pl = strlen(_PATH_TTYOPT) + strlen(dev) + 1;
+diff -Nur ppp-2.4.2/pppd.orig/tty.c ppp-2.4.2/pppd/tty.c
+--- ppp-2.4.2/pppd.orig/tty.c 2004-01-13 05:17:59.000000000 +0100
++++ ppp-2.4.2/pppd/tty.c 2004-09-18 17:04:27.953757120 +0200
+@@ -300,7 +300,7 @@
+ if (*cp == 0)
+ return 0;
+
+- if (strncmp("/dev/", cp, 5) != 0) {
++ if (strncmp("/dev/", cp, 5) != 0 && strncmp("/udev/", cp, 6) != 0) {
+ strlcpy(dev, "/dev/", sizeof(dev));
+ strlcat(dev, cp, sizeof(dev));
+ cp = dev;