| Index: webrtc/p2p/client/basicportallocator.cc | 
| diff --git a/webrtc/p2p/client/basicportallocator.cc b/webrtc/p2p/client/basicportallocator.cc | 
| index 22abf33e93639d90b276ca9d6c5cc025fca3a6e0..edfd0219d05126f9a252224e4948e9a9294eaee1 100644 | 
| --- a/webrtc/p2p/client/basicportallocator.cc | 
| +++ b/webrtc/p2p/client/basicportallocator.cc | 
| @@ -1080,13 +1080,13 @@ void AllocationSequence::OnReadPacket( | 
| // a STUN binding response, so we pass the message to TurnPort regardless of | 
| // the message type. The TurnPort will just ignore the message since it will | 
| // not find any request by transaction ID. | 
| -  for (std::vector<TurnPort*>::const_iterator it = turn_ports_.begin(); | 
| -       it != turn_ports_.end(); ++it) { | 
| -    TurnPort* port = *it; | 
| +  for (TurnPort* port : turn_ports_) { | 
| if (port->server_address().address == remote_addr) { | 
| -      port->HandleIncomingPacket(socket, data, size, remote_addr, packet_time); | 
| +      if (port->HandleIncomingPacket(socket, data, size, remote_addr, | 
| +                                     packet_time)) { | 
| +        return; | 
| +      } | 
| turn_port_found = true; | 
| -      break; | 
| } | 
| } | 
|  | 
| @@ -1097,8 +1097,9 @@ void AllocationSequence::OnReadPacket( | 
| // the TURN server is also a STUN server. | 
| if (!turn_port_found || | 
| stun_servers.find(remote_addr) != stun_servers.end()) { | 
| -      udp_port_->HandleIncomingPacket( | 
| -          socket, data, size, remote_addr, packet_time); | 
| +      RTC_DCHECK(udp_port_->SharedSocket()); | 
| +      udp_port_->HandleIncomingPacket(socket, data, size, remote_addr, | 
| +                                      packet_time); | 
| } | 
| } | 
| } | 
|  |