diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index e2a3c7778320b501de638a9fcab2aceaff96a8e8..23b65087c88fce128e44a3bbc7d04e175b2ae3e2 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -654,7 +654,7 @@ static int ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us)
 		time(&externexpire);
 		externexpire += externrefresh;
 		if ((hp = ast_gethostbyname(externhost, &ahp))) {
-			memcpy(&externip, hp->h_addr, sizeof(externip));
+			memcpy(&externip.sin_addr, hp->h_addr, sizeof(externip));
 		} else
 			ast_log(LOG_NOTICE, "Warning: Re-lookup of '%s' failed!\n", externhost);
 	}