| Index: net/quic/quic_connection.cc
 | 
| diff --git a/net/quic/quic_connection.cc b/net/quic/quic_connection.cc
 | 
| index 4ce94c467763a634e01202552d349012d623559c..f9c0cc2413033cdccc229b9381851c6535d3156c 100644
 | 
| --- a/net/quic/quic_connection.cc
 | 
| +++ b/net/quic/quic_connection.cc
 | 
| @@ -1211,25 +1211,12 @@ bool QuicConnection::ShouldDiscardPacket(
 | 
|      return true;
 | 
|    }
 | 
|  
 | 
| -  if (retransmittable == HAS_RETRANSMITTABLE_DATA) {
 | 
| -    if (sent_packet_manager_.IsPreviousTransmission(sequence_number)) {
 | 
| -      // If somehow we have already retransmitted this packet *before*
 | 
| -      // we actually send it for the first time (I think this is probably
 | 
| -      // impossible in the real world), then don't bother sending it.
 | 
| -      // We don't want to call DiscardUnackedPacket because in this case
 | 
| -      // the peer has not yet ACK'd the data.  We need the subsequent
 | 
| -      // retransmission to be sent.
 | 
| -      DVLOG(1) << ENDPOINT << "Dropping packet: " << sequence_number
 | 
| -                 << " since it has already been retransmitted.";
 | 
| -      return true;
 | 
| -    }
 | 
| -
 | 
| -    if (!sent_packet_manager_.HasRetransmittableFrames(sequence_number)) {
 | 
| -      DVLOG(1) << ENDPOINT << "Dropping packet: " << sequence_number
 | 
| -                 << " since a previous transmission has been acked.";
 | 
| -      sent_packet_manager_.DiscardUnackedPacket(sequence_number);
 | 
| -      return true;
 | 
| -    }
 | 
| +  if (retransmittable == HAS_RETRANSMITTABLE_DATA &&
 | 
| +      !sent_packet_manager_.HasRetransmittableFrames(sequence_number)) {
 | 
| +    DVLOG(1) << ENDPOINT << "Dropping packet: " << sequence_number
 | 
| +             << " since a previous transmission has been acked.";
 | 
| +    sent_packet_manager_.DiscardUnackedPacket(sequence_number);
 | 
| +    return true;
 | 
|    }
 | 
|  
 | 
|    return false;
 | 
| 
 |