diff --git a/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java b/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java
index 9be5feb..80abdcd 100644
--- a/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java
+++ b/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java
@@ -160,7 +160,7 @@
             return context.getContentResolver().query(
                     Queries.PHONE.getContentUri(),
                     Queries.PHONE.getProjection(),
-                    Queries.Query.CONTACT_ID + " =?", new String[] {
+                    Queries.PHONE.getProjection()[Queries.Query.CONTACT_ID] + " =?", new String[] {
                         String.valueOf(contactId)
                     }, null);
         }
diff --git a/chips/src/com/android/ex/chips/RecipientEditTextView.java b/chips/src/com/android/ex/chips/RecipientEditTextView.java
index dc0b2c7..46ac2e7 100644
--- a/chips/src/com/android/ex/chips/RecipientEditTextView.java
+++ b/chips/src/com/android/ex/chips/RecipientEditTextView.java
@@ -348,12 +348,12 @@
         }
         super.append(text, start, end);
         if (!TextUtils.isEmpty(text) && TextUtils.getTrimmedLength(text) > 0) {
-            final String displayString = (String) text;
+            final String displayString = text.toString();
             int seperatorPos = displayString.indexOf(COMMIT_CHAR_COMMA);
             if (seperatorPos != 0 && !TextUtils.isEmpty(displayString)
                     && TextUtils.getTrimmedLength(displayString) > 0) {
                 mPendingChipsCount++;
-                mPendingChips.add((String)text);
+                mPendingChips.add(text.toString());
             }
         }
         // Put a message on the queue to make sure we ALWAYS handle pending chips.
