spin_lock_init(&iucv_sk(sk)->message_q.lock);
        skb_queue_head_init(&iucv_sk(sk)->backlog_skb_q);
        iucv_sk(sk)->send_tag = 0;
 +      iucv_sk(sk)->flags = 0;
 +      iucv_sk(sk)->msglimit = IUCV_QUEUELEN_DEFAULT;
+       iucv_sk(sk)->path = NULL;
+       memset(&iucv_sk(sk)->src_user_id , 0, 32);
  
        sk->sk_destruct = iucv_sock_destruct;
        sk->sk_sndtimeo = IUCV_CONN_TIMEOUT;
                                iucv_process_message_q(sk);
                        spin_unlock_bh(&iucv->message_q.lock);
                }
- 
-       } else
-               skb_queue_head(&sk->sk_receive_queue, skb);
+       }
  
  done:
 -      return err ? : copied;
 +      /* SOCK_SEQPACKET: return real length if MSG_TRUNC is set */
 +      if (sk->sk_type == SOCK_SEQPACKET && (flags & MSG_TRUNC))
 +              copied = rlen;
 +
 +      return copied;
  }
  
  static inline unsigned int iucv_accept_poll(struct sock *parent)