diff -r 283c83f1f7be src/node/queue.cc --- a/src/node/queue.cc Sun May 16 15:24:53 2010 -0700 +++ b/src/node/queue.cc Sun May 16 23:16:26 2010 -0700 @@ -62,13 +62,16 @@ Queue::Enqueue (Ptr p) { NS_LOG_FUNCTION (this << p); - NS_LOG_LOGIC ("m_traceEnqueue (p)"); - m_traceEnqueue (p); - + // + // If DoEnqueue fails, Queue::Drop is called by the subclass + // bool retval = DoEnqueue (p); if (retval) { + NS_LOG_LOGIC ("m_traceEnqueue (p)"); + m_traceEnqueue (p); + uint32_t size = p->GetSize (); m_nBytes += size; m_nTotalReceivedBytes += size; @@ -95,7 +98,6 @@ m_nPackets--; NS_LOG_LOGIC("m_traceDequeue (packet)"); - m_traceDequeue (packet); } return packet;