}
                /*
                 * Schedule no feedback timer to expire in
-                * max(4 * R, 2 * s / X)
+                * max(4 * t_RTO, 2 * s/X)  =  max(4 * t_RTO, 2 * t_ipi)
+                * XXX This is non-standard, RFC 3448, 4.3 uses 4 * R
                 */
-               next_tmout = max_t(u32, hctx->ccid3hctx_t_rto, 
-                                       2 * usecs_div(hctx->ccid3hctx_s,
-                                                     hctx->ccid3hctx_x));
+               next_tmout = max(hctx->ccid3hctx_t_rto, 2*hctx->ccid3hctx_t_ipi);
                break;
        case TFRC_SSTATE_NO_SENT:
                DCCP_BUG("Illegal %s state NO_SENT, sk=%p", dccp_role(sk), sk);
                               "r_sample=%us\n", dccp_role(sk), sk,
                               hctx->ccid3hctx_rtt, r_sample);
 
-               /* Update timeout interval */
-               hctx->ccid3hctx_t_rto = max_t(u32, 4 * hctx->ccid3hctx_rtt,
-                                             USEC_PER_SEC);
-
                /* Update receive rate */
                hctx->ccid3hctx_x_recv = x_recv;/* X_recv in bytes per sec */
 
                                         &hctx->ccid3hctx_hist, packet);
                /*
                 * As we have calculated new ipi, delta, t_nom it is possible that
-                * we now can send a packet, so wake up dccp_wait_for_ccids.
+                * we now can send a packet, so wake up dccp_wait_for_ccid
                 */
                sk->sk_write_space(sk);
 
+
+               /* Update timeout interval. We use the alternative variant of
+                * [RFC 3448, 3.1] which sets the upper bound of t_rto to one
+                * second, as it is suggested for TCP (see RFC 2988, 2.4). */
+               hctx->ccid3hctx_t_rto = max_t(u32, 4 * hctx->ccid3hctx_rtt,
+                                                  USEC_PER_SEC            );
                /*
                 * Schedule no feedback timer to expire in
-                * max(4 * R, 2 * s / X)
+                * max(4 * t_RTO, 2 * s/X)  =  max(4 * t_RTO, 2 * t_ipi)
+                * XXX This is non-standard, RFC 3448, 4.3 uses 4 * R
                 */
-               next_tmout = max(hctx->ccid3hctx_t_rto,
-                                2 * usecs_div(hctx->ccid3hctx_s,
-                                              hctx->ccid3hctx_x));
+               next_tmout = max(hctx->ccid3hctx_t_rto, 2*hctx->ccid3hctx_t_ipi);
                        
                ccid3_pr_debug("%s, sk=%p, Scheduled no feedback timer to "
                               "expire in %lu jiffies (%luus)\n",
                               usecs_to_jiffies(next_tmout), next_tmout); 
 
                sk_reset_timer(sk, &hctx->ccid3hctx_no_feedback_timer, 
-                              jiffies + max_t(u32, 1, usecs_to_jiffies(next_tmout)));
+                                  jiffies + usecs_to_jiffies(next_tmout));
 
                /* set idle flag */
                hctx->ccid3hctx_idle = 1;   
 
        /* Set transmission rate to 1 packet per second */
        hctx->ccid3hctx_x     = hctx->ccid3hctx_s;
-       hctx->ccid3hctx_t_rto = USEC_PER_SEC;
        hctx->ccid3hctx_state = TFRC_SSTATE_NO_SENT;
        INIT_LIST_HEAD(&hctx->ccid3hctx_hist);