diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 0137237..0de0e79 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -1069,7 +1069,7 @@
 
         static public ContentValues setDefaultValue(ContentValues values) {
             if (!values.containsKey(Telephony.Carriers.SUBSCRIPTION_ID)) {
-                int subId = SubscriptionManager.getDefaultSubId();
+                int subId = SubscriptionManager.getDefaultSubscriptionId();
                 values.put(Telephony.Carriers.SUBSCRIPTION_ID, subId);
             }
 
@@ -1550,7 +1550,7 @@
             + selection + "selectionArgs=" + selectionArgs + ", sort=" + sort);
         TelephonyManager mTelephonyManager =
                 (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE);
-        int subId = SubscriptionManager.getDefaultSubId();
+        int subId = SubscriptionManager.getDefaultSubscriptionId();
         String subIdString;
         SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
         qb.setStrict(true); // a little protection from injection attacks
@@ -1701,7 +1701,7 @@
     public synchronized Uri insert(Uri url, ContentValues initialValues)
     {
         Uri result = null;
-        int subId = SubscriptionManager.getDefaultSubId();
+        int subId = SubscriptionManager.getDefaultSubscriptionId();
 
         checkPermission();
 
@@ -1843,7 +1843,7 @@
     public synchronized int delete(Uri url, String where, String[] whereArgs)
     {
         int count = 0;
-        int subId = SubscriptionManager.getDefaultSubId();
+        int subId = SubscriptionManager.getDefaultSubscriptionId();
         String userOrCarrierEdited = ") and (" +
                 Telephony.Carriers.EDITED + "=" + Telephony.Carriers.USER_EDITED +  " or " +
                 Telephony.Carriers.EDITED + "=" + Telephony.Carriers.CARRIER_EDITED + ")";
@@ -1986,7 +1986,7 @@
     {
         int count = 0;
         int uriType = URL_UNKNOWN;
-        int subId = SubscriptionManager.getDefaultSubId();
+        int subId = SubscriptionManager.getDefaultSubscriptionId();
 
         checkPermission();
 
