| Index: webrtc/call/call.cc
 | 
| diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc
 | 
| index ebc1aeb866237b9c8c16abef5a5499419c228a62..3ed794753983e97f7a661ebefbca9194f77337e6 100644
 | 
| --- a/webrtc/call/call.cc
 | 
| +++ b/webrtc/call/call.cc
 | 
| @@ -407,6 +407,14 @@ webrtc::AudioSendStream* Call::CreateAudioSendStream(
 | 
|                 audio_send_ssrcs_.end());
 | 
|      audio_send_ssrcs_[config.rtp.ssrc] = send_stream;
 | 
|    }
 | 
| +  {
 | 
| +    ReadLockScoped read_lock(*receive_crit_);
 | 
| +    for (const auto& kv : audio_receive_ssrcs_) {
 | 
| +      if (kv.second->config().rtp.local_ssrc == config.rtp.ssrc) {
 | 
| +        kv.second->AssociateSendStream(send_stream);
 | 
| +      }
 | 
| +    }
 | 
| +  }
 | 
|    send_stream->SignalNetworkState(audio_network_state_);
 | 
|    UpdateAggregateNetworkState();
 | 
|    return send_stream;
 | 
| @@ -421,11 +429,19 @@ void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
 | 
|  
 | 
|    webrtc::internal::AudioSendStream* audio_send_stream =
 | 
|        static_cast<webrtc::internal::AudioSendStream*>(send_stream);
 | 
| +  uint32_t ssrc = audio_send_stream->config().rtp.ssrc;
 | 
|    {
 | 
|      WriteLockScoped write_lock(*send_crit_);
 | 
| -    size_t num_deleted = audio_send_ssrcs_.erase(
 | 
| -        audio_send_stream->config().rtp.ssrc);
 | 
| -    RTC_DCHECK(num_deleted == 1);
 | 
| +    size_t num_deleted = audio_send_ssrcs_.erase(ssrc);
 | 
| +    RTC_DCHECK_EQ(1, num_deleted);
 | 
| +  }
 | 
| +  {
 | 
| +    ReadLockScoped read_lock(*receive_crit_);
 | 
| +    for (const auto& kv : audio_receive_ssrcs_) {
 | 
| +      if (kv.second->config().rtp.local_ssrc == ssrc) {
 | 
| +        kv.second->AssociateSendStream(nullptr);
 | 
| +      }
 | 
| +    }
 | 
|    }
 | 
|    UpdateAggregateNetworkState();
 | 
|    delete audio_send_stream;
 | 
| @@ -445,6 +461,13 @@ webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
 | 
|      audio_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream;
 | 
|      ConfigureSync(config.sync_group);
 | 
|    }
 | 
| +  {
 | 
| +    ReadLockScoped read_lock(*send_crit_);
 | 
| +    auto it = audio_send_ssrcs_.find(config.rtp.local_ssrc);
 | 
| +    if (it != audio_send_ssrcs_.end()) {
 | 
| +      receive_stream->AssociateSendStream(it->second);
 | 
| +    }
 | 
| +  }
 | 
|    receive_stream->SignalNetworkState(audio_network_state_);
 | 
|    UpdateAggregateNetworkState();
 | 
|    return receive_stream;
 | 
| 
 |