| Index: content/renderer/browser_plugin/browser_plugin.cc | 
| diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc | 
| index 3364c60142ebfe6bd019f6457b46883996a85b04..678e87e8e0230aee2fdd1c76701d48084c5c9be1 100644 | 
| --- a/content/renderer/browser_plugin/browser_plugin.cc | 
| +++ b/content/renderer/browser_plugin/browser_plugin.cc | 
| @@ -269,9 +269,20 @@ void BrowserPlugin::Attach(int guest_instance_id, | 
| scoped_ptr<base::DictionaryValue> extra_params) { | 
| CHECK(guest_instance_id != browser_plugin::kInstanceIDNone); | 
|  | 
| -  // If this BrowserPlugin is already attached to a guest, then do nothing. | 
| -  if (HasGuestInstanceID()) | 
| -    return; | 
| +  // If this BrowserPlugin is already attached to a guest, then kill the guest. | 
| +  if (HasGuestInstanceID()) { | 
| +    if (guest_instance_id == guest_instance_id_) | 
| +      return; | 
| +    guest_crashed_ = false; | 
| +    EnableCompositing(false); | 
| +    if (compositing_helper_) { | 
| +      compositing_helper_->OnContainerDestroy(); | 
| +      compositing_helper_ = NULL; | 
| +    } | 
| +    browser_plugin_manager()->RemoveBrowserPlugin(guest_instance_id_); | 
| +    browser_plugin_manager()->Send(new BrowserPluginHostMsg_PluginDestroyed( | 
| +        render_view_routing_id_, guest_instance_id_)); | 
| +  } | 
|  | 
| // This API may be called directly without setting the src attribute. | 
| // In that case, we need to make sure we don't allocate another instance ID. | 
|  |