--- freeradius-1.1.1/src/lib/valuepair.c.orig 2006-07-13 23:32:25.000000000 +1000 +++ freeradius-1.1.1/src/lib/valuepair.c 2006-07-13 23:40:38.000000000 +1000 @@ -313,11 +313,14 @@ /* * If the attribute is already present in "to", * do not move it from "from" to "to". We make - * an exception for "Hint" which can appear multiple + * an exception for "Hint", "Framed-Route", and + * vendor attributes which can appear multiple * times, and we never move "Fall-Through". */ if (i->attribute == PW_FALL_THROUGH || - (i->attribute != PW_HINT && i->attribute != PW_FRAMED_ROUTE)) { + (i->attribute != PW_HINT && + i->attribute != PW_FRAMED_ROUTE && + (i->attribute >> 16) == 0)) { found = pairfind(*to, i->attribute); switch (i->operator) {