diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index ae9e99c0c307e275f73b3552fc8831c44922024c..83f5d499cbb13b9e95374fd839174072dc09a46e 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -21115,7 +21115,7 @@ static int sip_poke_peer(struct sip_peer *peer, int force)
 	
 	p->sa = peer->addr;
 	p->recv = peer->addr;
-	p->socket = peer->socket;
+	copy_socket_data(&p->socket, &peer->socket);
 	ast_copy_flags(&p->flags[0], &peer->flags[0], SIP_FLAGS_TO_COPY);
 	ast_copy_flags(&p->flags[1], &peer->flags[1], SIP_PAGE2_FLAGS_TO_COPY);