#define DCCP_RTO_MAX ((unsigned)(120 * HZ)) /* FIXME: using TCP value */
 
+#define DCCP_XMIT_TIMEO 30000 /* Time/msecs for blocking transmit per packet */
+
 /* is seq1 < seq2 ? */
 static inline int before48(const u64 seq1, const u64 seq2)
 {
 
 {
        struct dccp_sock *dp = dccp_sk(sk);
        struct sk_buff *skb;
-       long timeo = 30000;     /* If a packet is taking longer than 2 secs
-                                  we have other issues */
+       long timeo = DCCP_XMIT_TIMEO;   /* If a packet is taking longer than
+                                          this we have other issues */
 
        while ((skb = skb_peek(&sk->sk_write_queue))) {
                int err = ccid_hc_tx_send_packet(dp->dccps_hc_tx_ccid, sk, skb,
                                sk_reset_timer(sk, &dp->dccps_xmit_timer,
                                                msecs_to_jiffies(err)+jiffies);
                                break;
-                       } else
+                       } else {
                                err = dccp_wait_for_ccid(sk, skb, &timeo);
+                               timeo = DCCP_XMIT_TIMEO;
+                       }
                        if (err) {
                                printk(KERN_CRIT "%s:err at dccp_wait_for_ccid"
                                                 " %d\n", __FUNCTION__, err);