| Index: content/browser/frame_host/render_frame_host_manager.cc
 | 
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
 | 
| index 1ffbbaa4861f5795c19410c982d11b26da767cdd..79a477d1e020d3b3b20b25c1fb7d121c842a1110 100644
 | 
| --- a/content/browser/frame_host/render_frame_host_manager.cc
 | 
| +++ b/content/browser/frame_host/render_frame_host_manager.cc
 | 
| @@ -912,10 +912,13 @@ void RenderFrameHostManager::DiscardUnusedFrame(
 | 
|  
 | 
|  void RenderFrameHostManager::MoveToPendingDeleteHosts(
 | 
|      scoped_ptr<RenderFrameHostImpl> render_frame_host) {
 | 
| -  // If this is the main frame going away, mark the corresponding
 | 
| -  // RenderViewHost for deletion as well so that we don't try to reuse it.
 | 
| -  if (render_frame_host->frame_tree_node()->IsMainFrame())
 | 
| +  // If this is the main frame going away and there are no more references to
 | 
| +  // its RenderViewHost, mark it for deletion as well so that we don't try to
 | 
| +  // reuse it.
 | 
| +  if (render_frame_host->frame_tree_node()->IsMainFrame() &&
 | 
| +      render_frame_host->render_view_host()->ref_count() <= 1) {
 | 
|      render_frame_host->render_view_host()->set_pending_deletion();
 | 
| +  }
 | 
|  
 | 
|    // |render_frame_host| will be deleted when its SwapOut ACK is received, or
 | 
|    // when the timer times out, or when the RFHM itself is deleted (whichever
 | 
| 
 |