Klaus,
To me it seems that the SIP server also does some kind of NAT traversal: it puts the Contact IP in to the RURI but it sends the request to the IP:port from which the REGISTER was received (that's called NAT traversal).
So, either fix the SIP server (make sure it adds the port as in the Contact header also to the RURI) or try a workaround:
A woraround would be for example to put the received port in the Contact URI as an URI paramter. If the SIP server does not strip URI parameters as well, then you might be lucky and restore the port from the parameter in the RURI.
For the URI-parameter workaround try the functions add_contact_alias() and handle_ruri_alias(): http://www.kamailio.org/docs/modules/stable/modules_k/nathelper.html#id27642...
Ok, will try your suggestion for the workaround.
Thanks for all the help.
Regards, Vikram.