| Index: chrome/browser/chrome_application_mac.mm
 | 
| diff --git a/chrome/browser/chrome_application_mac.mm b/chrome/browser/chrome_application_mac.mm
 | 
| index 8c7d86014781eb42b8e6523f939fb92ebd349c69..a94d3aac93e1ead66cf62586da73bee921eae574 100644
 | 
| --- a/chrome/browser/chrome_application_mac.mm
 | 
| +++ b/chrome/browser/chrome_application_mac.mm
 | 
| @@ -58,4 +58,29 @@
 | 
|    // own.
 | 
|  }
 | 
|  
 | 
| +- (BOOL)sendAction:(SEL)anAction to:(id)aTarget from:(id)sender {
 | 
| +  // The Dock menu contains an automagic section where you can select
 | 
| +  // amongst open windows.  If a window is closed via JavaScript while
 | 
| +  // the menu is up, the menu item for that window continues to exist.
 | 
| +  // When a window is selected this method is called with the
 | 
| +  // now-freed window as |aTarget|.  Short-circuit the call if
 | 
| +  // |aTarget| is not a valid window.
 | 
| +  if (anAction == @selector(_selectWindow:)) {
 | 
| +    // Not using -[NSArray containsObject:] because |aTarget| may be a
 | 
| +    // freed object.
 | 
| +    BOOL found = NO;
 | 
| +    for (NSWindow* window in [self windows]) {
 | 
| +      if (window == aTarget) {
 | 
| +        found = YES;
 | 
| +        break;
 | 
| +      }
 | 
| +    }
 | 
| +    if (!found) {
 | 
| +      return NO;
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  return [super sendAction:anAction to:aTarget from:sender];
 | 
| +}
 | 
| +
 | 
|  @end
 | 
| 
 |