The GRE protocol helper of PPTP does not get properly registered when it is built in, because ip_nat_proto_gre_init runs prior to ip_nat_init, so ip_nat_protos is unitialized when ip_nat_proto_gre_init tries to register protocol 47. Changing ip_nat_protocol_register to unconditionally register solves half the problem. But then when ip_nat_init does run, it overwrites the registration with ip_nat_unknown_protocol. So the second part of the fix is to change ip_nat_init not to overwrite previously registered protos. This fixes netfilter bugzilla #397, and IMHO should go to mainline ASAP to hopefully make 2.6.15. Phil Signed-off-by: Phil Oester