When snmptrapd receives a snmptrap it is _not_ supposed to use the IP-source address of the packet as the sender of the trap, but look inside the snmp-packet (agent-addr in SNMPv1) to see who the trap really comes from.
There are several RFCs and papers about this (and we have mentioned it earlier).
Please?
--Ingeborg