iptable forward packet

Hi,
I have the doubt which involved following configuration.
comp1<--->main<--->comp2
Comp1 sends icmp packet to main. Main takes that packet and changes destination address to comp2 and source address to it own.
I can capture the packet send from comp1 to main using netfilter. I can see the packet and its content. Then i modify the destination, source address and ip checksum successfully. But when i release it back to the kernel the packet never goes back to comp2. To release back packet i use nfq_set_verdict(....,NF_ACCEPT). If i capture packet from output chain of main when its sending ping reply back to comp1 my program modifies that packet and sends it to comp2 but if i capture packet from input chain of filter table than it does not forward that to modified address. I think this maybe because once the packet is in input chain of filter table modifying destination address means nothing. Can someone assist me how to forward packet from comp1 to comp2 through main.