diff -wBu ppp-2.4.4_patched/pppd/ccp.c ppp-2.4.4/pppd/ccp.c --- ppp-2.4.4_patched/pppd/ccp.c 2006-08-11 12:34:09.000000000 +0200 +++ ppp-2.4.4/pppd/ccp.c 2006-07-20 13:55:23.000000000 +0400 @@ -62,9 +62,6 @@ static char bsd_value[8]; static char deflate_value[8]; -/* - * Option variables. - */ #ifdef MPPE static int setmppe(char **); static int setnomppe(void); @@ -993,6 +988,8 @@ && p[5] != ((go->mppe_128 ? MPPE_128BIT : 0) | (go->mppc ? MPPE_MPPC : 0)))) return 0; + if (go->mppe_40 || go->mppe_56 || go->mppe_128) + go->mppe = 1; p += CILEN_MPPE; len -= CILEN_MPPE; /* Cope with first/fast ack */ @@ -1626,10 +1621,9 @@ if ((!ho->mppc || !ao->mppc) && !ho->mppe) { p[2] = p2; p[5] = p5; - newret = CONFREJ; + newret = CONFNAK; break; } - /* * I have commented the code below because according to RFC1547 * MTU is only information for higher level protocols about