diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 924405e6b0d8a28761fa33447d06b0b22bbebfe9..2eb5d38d0fc36e5bb40045650b5e30949559e399 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -5005,6 +5005,7 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer, struct sockadd
 	if (dialog->outboundproxy) {
 		/* If we have an outbound proxy, don't bother with DNS resolution at all, but set the port */
 		portno = port ? atoi(port) : (dialog->socket.type & SIP_TRANSPORT_TLS) ? STANDARD_TLS_PORT : STANDARD_SIP_PORT;
+		memcpy(&dialog->sa.sin_addr, &dialog->outboundproxy->ip.sin_addr, sizeof(dialog->sa.sin_addr));
 	} else if (sin) {
 		/* This address should be updated using dnsmgr */
 		memcpy(&dialog->sa.sin_addr, &sin->sin_addr, sizeof(dialog->sa.sin_addr));