--- a/src/core.c
+++ b/src/core.c
@@ -273,9 +273,9 @@ static int core_udp_listen(nc_sock_t *nc
 	dup_socket.domain = ncsock->domain;
 	dup_socket.proto = ncsock->proto;
 	memcpy(&dup_socket.local_host.iaddrs[0], &local_addr.sin_addr,
-	       sizeof(local_addr));
+	       sizeof(local_addr.sin_addr));
 	memcpy(&dup_socket.host.iaddrs[0], &rem_addr.sin_addr,
-	       sizeof(local_addr));
+	       sizeof(rem_addr.sin_addr));
 	dup_socket.local_port.netnum = local_addr.sin_port;
 	dup_socket.local_port.num = ntohs(local_addr.sin_port);
 	dup_socket.port.netnum = rem_addr.sin_port;