diff --git a/chrome/renderer/password_autocomplete_manager.cc b/chrome/renderer/password_autocomplete_manager.cc
index 78512fa5a6f40c7b16a8325d6c2bd05e690a8073..613a0b4ab844969eec3ab89a6800afd1222b6fa4 100644
--- a/chrome/renderer/password_autocomplete_manager.cc
+++ b/chrome/renderer/password_autocomplete_manager.cc
@@ -413,15 +413,17 @@ void PasswordAutocompleteManager::GetSuggestions(
 bool PasswordAutocompleteManager::ShowSuggestionPopup(
     const webkit_glue::PasswordFormFillData& fill_data,
     const WebKit::WebInputElement& user_input) {
-  std::vector<string16> suggestions;
-  GetSuggestions(fill_data, user_input.value(), &suggestions);
-  if (suggestions.empty())
-    return false;
-
   WebKit::WebView* webview = user_input.document().frame()->view();
   if (!webview)
     return false;
 
+  std::vector<string16> suggestions;
+  GetSuggestions(fill_data, user_input.value(), &suggestions);
+  if (suggestions.empty()) {
+    webview->hidePopups();
+    return false;
+  }
+
   std::vector<string16> labels(suggestions.size());
   std::vector<string16> icons(suggestions.size());
   std::vector<int> ids(suggestions.size(), 0);