diff --git a/main/netsock2.c b/main/netsock2.c
index 4d93a911bdc1de5bcc68e5fa2eb1cb03cb8115d0..ba671c1dcda42e466cc94037a9c1a91c73ff997f 100644
--- a/main/netsock2.c
+++ b/main/netsock2.c
@@ -489,7 +489,7 @@ int ast_sockaddr_to_sin(const struct ast_sockaddr *addr,
 
 void ast_sockaddr_from_sin(struct ast_sockaddr *addr, const struct sockaddr_in *sin)
 {
-	*((struct sockaddr_in *)&addr->ss) = *sin;
+	memcpy(&addr->ss, sin, sizeof(*sin));
 
 	if (addr->ss.ss_family != AF_INET) {
 		ast_log(LOG_DEBUG, "Address family is not AF_INET\n");