--- smbd/chgpasswd.c.orig 2006-01-14 10:53:28.000000000 -0500 +++ smbd/chgpasswd.c 2006-01-14 13:27:54.000000000 -0500 @@ -154,8 +154,10 @@ return (False); } #ifdef I_PUSH - ioctl(slave, I_PUSH, "ptem"); - ioctl(slave, I_PUSH, "ldterm"); + if ( ! ioctl(slave, I_FIND, "ptem")) + ioctl(slave, I_PUSH, "ptem"); + if ( ! ioctl(slave, I_FIND, "ldterm")) + ioctl(slave, I_PUSH, "ldterm"); #elif defined(TIOCSCTTY) if (ioctl(slave, TIOCSCTTY, 0) < 0) {