local mis_ack_nr=${8:-0}
        local count
        local dump_stats
+       local timeout
+
+       timeout=`ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout`
 
        printf "%-39s %s" " " "add"
-       count=`ip netns exec $ns2 nstat -as | grep MPTcpExtAddAddr | awk '{print $2}'`
+       count=`ip netns exec $ns2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAddAddr | awk '{print $2}'`
        [ -z "$count" ] && count=0
-       if [ "$count" != "$add_nr" ]; then
+
+       # if the test configured a short timeout tolerate greater then expected
+       # add addrs options, due to retransmissions
+       if [ "$count" != "$add_nr" ] && [ "$timeout" -gt 1 -o "$count" -lt "$add_nr" ]; then
                echo "[fail] got $count ADD_ADDR[s] expected $add_nr"
                ret=1
                dump_stats=1
        ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags signal
        ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags signal
        ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags signal
-       run_tests $ns1 $ns2 10.0.1.1
+
+       # the peer could possibly miss some addr notification, allow retransmission
+       ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
+       run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow
        chk_join_nr "signal addresses race test" 3 3 3
 
        # the server will not signal the address terminating