diff --git a/user/src/com/google/gwt/user/client/ui/SuggestBox.java b/user/src/com/google/gwt/user/client/ui/SuggestBox.java
index beab0c3..6668d48 100644
--- a/user/src/com/google/gwt/user/client/ui/SuggestBox.java
+++ b/user/src/com/google/gwt/user/client/ui/SuggestBox.java
@@ -1035,7 +1035,7 @@
 
   private void refreshSuggestions() {
     // Get the raw text.
-    String text = box.getText();
+    String text = getText();
     if (text.equals(currentText)) {
       return;
     } else {
diff --git a/user/test/com/google/gwt/user/client/ui/SuggestBoxTest.java b/user/test/com/google/gwt/user/client/ui/SuggestBoxTest.java
index 8bf2db5..1bd7fb6 100644
--- a/user/test/com/google/gwt/user/client/ui/SuggestBoxTest.java
+++ b/user/test/com/google/gwt/user/client/ui/SuggestBoxTest.java
@@ -97,6 +97,36 @@
     assertTrue(box.isSuggestionListShowing());
   }
 
+  public void testGettextShouldBeCalledWhenOverrided() {
+
+    // Verify that the query matches the overridden getText.
+    SuggestOracle oracle = new SuggestOracle() {
+      @Override
+      public void requestSuggestions(Request request, Callback callback) {
+        if ("override".equals(request.getQuery())) {
+          finishTest();
+        } else {
+          fail("Expected query: override");
+        }
+      }
+    };
+
+    // Create a customized SuggestBox which overrides getText.
+    SuggestBox box = new SuggestBox(oracle) {
+      @Override
+      public String getText() {
+        return "override";
+      }
+    };
+
+    // Attach the box.
+    RootPanel.get().add(box);
+
+    // showSuggestionList should call the overridden method.
+    delayTestFinish(1000);
+    box.showSuggestionList();
+  }
+
   @SuppressWarnings("deprecation")
   public void testShowAndHide() {
     SuggestBox box = createSuggestBox();
