diff -r 6ed1556809ea -r 5991df10eb5e src/internet/model/tcp-socket-base.cc --- a/src/internet/model/tcp-socket-base.cc Fri Nov 02 15:39:41 2012 -0700 +++ b/src/internet/model/tcp-socket-base.cc Mon Nov 05 14:07:02 2012 -0500 @@ -1982,7 +1982,16 @@ // Use m_rtt for the estimation. Note, RTT of duplicated acknowledgement // (which should be ignored) is handled by m_rtt. Once timestamp option // is implemented, this function would be more elaborated. - m_lastRtt = m_rtt->AckSeq (tcpHeader.GetAckNumber () ); + Time nextRtt = m_rtt->AckSeq (tcpHeader.GetAckNumber () ); + + //nextRtt will be zero for dup acks. Don't want to update lastRtt in that case + //but still needed to do list clearing that is done in AckSeq. + if(nextRtt != 0) + { + m_lastRtt = nextRtt; + NS_LOG_FUNCTION(this << m_lastRtt); + } + } // Called by the ReceivedAck() when new ACK received and by ProcessSynRcvd()