diff --git a/src/com/android/providers/contacts/ContactAggregator.java b/src/com/android/providers/contacts/ContactAggregator.java
index 46fb78d..1f6bd40 100644
--- a/src/com/android/providers/contacts/ContactAggregator.java
+++ b/src/com/android/providers/contacts/ContactAggregator.java
@@ -1806,7 +1806,7 @@
             MatchCandidateList candidates, ContactMatcher matcher,
             ArrayList<AggregationSuggestionParameter> parameters) {
         for (AggregationSuggestionParameter parameter : parameters) {
-            if (AggregationSuggestions.MATCH_NAME.equals(parameter.kind)) {
+            if (AggregationSuggestions.PARAMETER_MATCH_NAME.equals(parameter.kind)) {
                 updateMatchScoresBasedOnNameMatches(db, parameter.value, candidates, matcher);
             }
 
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java
index d3514aa..59b709b 100644
--- a/src/com/android/providers/contacts/ContactsProvider2.java
+++ b/src/com/android/providers/contacts/ContactsProvider2.java
@@ -4850,7 +4850,7 @@
                         int offset = parameter.indexOf(':');
                         parameters.add(offset == -1
                                 ? new AggregationSuggestionParameter(
-                                        AggregationSuggestions.MATCH_NAME,
+                                        AggregationSuggestions.PARAMETER_MATCH_NAME,
                                         parameter)
                                 : new AggregationSuggestionParameter(
                                         parameter.substring(0, offset),
diff --git a/tests/src/com/android/providers/contacts/ContactAggregatorTest.java b/tests/src/com/android/providers/contacts/ContactAggregatorTest.java
index 38cd4bb..8f68ed9 100644
--- a/tests/src/com/android/providers/contacts/ContactAggregatorTest.java
+++ b/tests/src/com/android/providers/contacts/ContactAggregatorTest.java
@@ -902,12 +902,12 @@
 
     public void testAggregationSuggestionsQueryBuilderWithValues() throws Exception {
         Uri uri = AggregationSuggestions.builder()
-                .addParameter(AggregationSuggestions.MATCH_NAME, "name1")
-                .addParameter(AggregationSuggestions.MATCH_NAME, "name2")
-                .addParameter(AggregationSuggestions.MATCH_EMAIL, "email1")
-                .addParameter(AggregationSuggestions.MATCH_EMAIL, "email2")
-                .addParameter(AggregationSuggestions.MATCH_PHONE, "phone1")
-                .addParameter(AggregationSuggestions.MATCH_NICKNAME, "nickname1")
+                .addParameter(AggregationSuggestions.PARAMETER_MATCH_NAME, "name1")
+                .addParameter(AggregationSuggestions.PARAMETER_MATCH_NAME, "name2")
+                .addParameter(AggregationSuggestions.PARAMETER_MATCH_EMAIL, "email1")
+                .addParameter(AggregationSuggestions.PARAMETER_MATCH_EMAIL, "email2")
+                .addParameter(AggregationSuggestions.PARAMETER_MATCH_PHONE, "phone1")
+                .addParameter(AggregationSuggestions.PARAMETER_MATCH_NICKNAME, "nickname1")
                 .setLimit(7)
                 .build();
         assertEquals("content://com.android.contacts/contacts/-1/suggestions?"
@@ -925,7 +925,7 @@
         long rawContactId2 = createRawContactWithName("first2", "last2");
 
         Uri uri = AggregationSuggestions.builder()
-                .addParameter(AggregationSuggestions.MATCH_NAME, "last1 first1")
+                .addParameter(AggregationSuggestions.PARAMETER_MATCH_NAME, "last1 first1")
                 .build();
 
         Cursor cursor = mResolver.query(
