sctp_spin_lock_irqsave(&sctp_local_addr_lock, flags);
        list_for_each(pos, &sctp_local_addr_list) {
                addr = list_entry(pos, struct sctp_sockaddr_entry, list);
-               if (sctp_in_scope(&addr->a_h, scope)) {
+               if (sctp_in_scope(&addr->a, scope)) {
                        /* Now that the address is in scope, check to see if
                         * the address type is really supported by the local
                         * sock as well as the remote peer.
                         */
-                       if ((((AF_INET == addr->a_h.sa.sa_family) &&
+                       if ((((AF_INET == addr->a.sa.sa_family) &&
                              (copy_flags & SCTP_ADDR4_PEERSUPP))) ||
-                           (((AF_INET6 == addr->a_h.sa.sa_family) &&
+                           (((AF_INET6 == addr->a.sa.sa_family) &&
                              (copy_flags & SCTP_ADDR6_ALLOWED) &&
                              (copy_flags & SCTP_ADDR6_PEERSUPP)))) {
                                error = sctp_add_bind_addr(bp, &addr->a, 1,
                laddr = list_entry(pos, struct sctp_sockaddr_entry, list);
 
                if ((laddr->use_as_src) &&
-                   (AF_INET == laddr->a_h.sa.sa_family)) {
-                       fl.fl4_src = laddr->a_h.v4.sin_addr.s_addr;
+                   (AF_INET == laddr->a.sa.sa_family)) {
+                       fl.fl4_src = laddr->a.v4.sin_addr.s_addr;
                        if (!ip_route_output_key(&rt, &fl)) {
                                dst = &rt->u.dst;
                                goto out_unlock;
 
        if (sctp_list_single_entry(&bp->address_list)) {
                addr = list_entry(bp->address_list.next,
                                  struct sctp_sockaddr_entry, list);
-               if (sctp_is_any(&addr->a_h)) {
+               if (sctp_is_any(&addr->a)) {
                        sctp_spin_lock_irqsave(&sctp_local_addr_lock, flags);
                        list_for_each(pos, &sctp_local_addr_list) {
                                addr = list_entry(pos,
                                                  struct sctp_sockaddr_entry,
                                                  list);
                                if ((PF_INET == sk->sk_family) && 
-                                   (AF_INET6 == addr->a_h.sa.sa_family))
+                                   (AF_INET6 == addr->a.sa.sa_family))
                                        continue;
                                cnt++;
                        }
        list_for_each(pos, &sctp_local_addr_list) {
                addr = list_entry(pos, struct sctp_sockaddr_entry, list);
                if ((PF_INET == sk->sk_family) && 
-                   (AF_INET6 == addr->a_h.sa.sa_family))
+                   (AF_INET6 == addr->a.sa.sa_family))
                        continue;
-               memcpy(&temp, &addr->a_h, sizeof(temp));
+               memcpy(&temp, &addr->a, sizeof(temp));
                sctp_get_pf_specific(sk->sk_family)->addr_v4map(sctp_sk(sk),
                                                                &temp);
                addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
-               temp.v4.sin_port = htons(port);
                if (copy_to_user(to, &temp, addrlen)) {
                        sctp_spin_unlock_irqrestore(&sctp_local_addr_lock,
                                                    flags);
        list_for_each(pos, &sctp_local_addr_list) {
                addr = list_entry(pos, struct sctp_sockaddr_entry, list);
                if ((PF_INET == sk->sk_family) && 
-                   (AF_INET6 == addr->a_h.sa.sa_family))
+                   (AF_INET6 == addr->a.sa.sa_family))
                        continue;
-               memcpy(&temp, &addr->a_h, sizeof(temp));
+               memcpy(&temp, &addr->a, sizeof(temp));
                sctp_get_pf_specific(sk->sk_family)->addr_v4map(sctp_sk(sk),
                                                                &temp);
                addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
                if(space_left<addrlen)
                        return -ENOMEM;
-               temp.v4.sin_port = htons(port);
                if (copy_to_user(*to, &temp, addrlen)) {
                        sctp_spin_unlock_irqrestore(&sctp_local_addr_lock,
                                                    flags);
        if (sctp_list_single_entry(&bp->address_list)) {
                addr = list_entry(bp->address_list.next,
                                  struct sctp_sockaddr_entry, list);
-               if (sctp_is_any(&addr->a_h)) {
+               if (sctp_is_any(&addr->a)) {
                        cnt = sctp_copy_laddrs_to_user_old(sk, bp->port,
                                                           getaddrs.addr_num,
                                                           to);
 
        list_for_each(pos, &bp->address_list) {
                addr = list_entry(pos, struct sctp_sockaddr_entry, list);
-               memcpy(&temp, &addr->a_h, sizeof(temp));
+               memcpy(&temp, &addr->a, sizeof(temp));
                sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp);
                addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
-               temp.v4.sin_port = htons(temp.v4.sin_port);
                if (copy_to_user(to, &temp, addrlen)) {
                        err = -EFAULT;
                        goto unlock;
        if (sctp_list_single_entry(&bp->address_list)) {
                addr = list_entry(bp->address_list.next,
                                  struct sctp_sockaddr_entry, list);
-               if (sctp_is_any(&addr->a_h)) {
+               if (sctp_is_any(&addr->a)) {
                        cnt = sctp_copy_laddrs_to_user(sk, bp->port,
                                                       &to, space_left);
                        if (cnt < 0) {
 
        list_for_each(pos, &bp->address_list) {
                addr = list_entry(pos, struct sctp_sockaddr_entry, list);
-               memcpy(&temp, &addr->a_h, sizeof(temp));
+               memcpy(&temp, &addr->a, sizeof(temp));
                sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp);
                addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
                if(space_left < addrlen)
                        return -ENOMEM; /*fixme: right error?*/
-               temp.v4.sin_port = htons(temp.v4.sin_port);
                if (copy_to_user(to, &temp, addrlen)) {
                        err = -EFAULT;
                        goto unlock;