| Index: chrome/browser/autocomplete/autocomplete_edit_view_win.cc | 
| diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_win.cc b/chrome/browser/autocomplete/autocomplete_edit_view_win.cc | 
| index bdc978f16a5d661fdcc2671d0462eb890ae88adb..9e2a8206cccd3dd0bc999371f9d06ed95120ab06 100644 | 
| --- a/chrome/browser/autocomplete/autocomplete_edit_view_win.cc | 
| +++ b/chrome/browser/autocomplete/autocomplete_edit_view_win.cc | 
| @@ -861,8 +861,11 @@ bool AutocompleteEditViewWin::OnAfterPossibleChangeInternal( | 
| new_sel.cpMax = length; | 
| SetSelectionRange(new_sel); | 
| } | 
| -  const bool selection_differs = (new_sel.cpMin != sel_before_change_.cpMin) || | 
| -      (new_sel.cpMax != sel_before_change_.cpMax); | 
| +  const bool selection_differs = | 
| +      ((new_sel.cpMin != new_sel.cpMax) || | 
| +       (sel_before_change_.cpMin != sel_before_change_.cpMax)) && | 
| +      ((new_sel.cpMin != sel_before_change_.cpMin) || | 
| +       (new_sel.cpMax != sel_before_change_.cpMax)); | 
| const bool at_end_of_edit = | 
| (new_sel.cpMin == length) && (new_sel.cpMax == length); | 
|  | 
| @@ -1690,10 +1693,8 @@ void AutocompleteEditViewWin::OnPaste() { | 
| // Replace the selection if we have something to paste. | 
| const std::wstring text(GetClipboardText()); | 
| if (!text.empty()) { | 
| -    // If this paste will be replacing all the text, record that, so we can do | 
| -    // different behaviors in such a case. | 
| -    if (IsSelectAll()) | 
| -      model_->on_paste_replacing_all(); | 
| +    // Record this paste, so we can do different behavior. | 
| +    model_->on_paste(); | 
| // Force a Paste operation to trigger the text_changed code in | 
| // OnAfterPossibleChange(), even if identical contents are pasted into the | 
| // text box. | 
| @@ -1972,7 +1973,7 @@ bool AutocompleteEditViewWin::OnKeyDownOnlyWritable(TCHAR key, | 
| } | 
|  | 
| case VK_TAB: { | 
| -      if (model_->is_keyword_hint() && !model_->keyword().empty()) { | 
| +      if (model_->is_keyword_hint()) { | 
| // Accept the keyword. | 
| ScopedFreeze freeze(this, GetTextObjectModel()); | 
| model_->AcceptKeyword(); | 
|  |