{
        memcpy(&chunk->source, src, sizeof(union sctp_addr));
        flip_to_h(&chunk->source_h, &chunk->source);
-       flip_to_h(&chunk->dest, dest);
+       memcpy(&chunk->dest, dest, sizeof(union sctp_addr));
 }
 
 /* Extract the source address from a chunk.  */
 
        /* Also, add the destination address. */
        if (list_empty(&retval->base.bind_addr.address_list)) {
-               union sctp_addr tmp;
-               flip_to_n(&tmp, &chunk->dest);
-               sctp_add_bind_addr(&retval->base.bind_addr, &tmp, 1,
+               sctp_add_bind_addr(&retval->base.bind_addr, &chunk->dest, 1,
                                   GFP_ATOMIC);
        }
 
 
        __u16 sport;
        __u16 dport;
        __u32 vtag;
-       union sctp_addr tmp;
 
        /* Get the source and destination port from the inbound packet.  */
        sport = ntohs(chunk->sctp_hdr->dest);
        /* Cache a route for the transport with the chunk's destination as
         * the source address.
         */
-       flip_to_n(&tmp, &chunk->dest);
-       sctp_transport_route(transport, &tmp,
+       sctp_transport_route(transport, (union sctp_addr *)&chunk->dest,
                             sctp_sk(sctp_get_ctl_sock()));
 
        packet = sctp_packet_init(&transport->packet, transport, sport, dport);