diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index 492f346..ba66d35 100644
--- a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
+++ b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
@@ -218,8 +218,9 @@
 
     static final String DATABASE_NAME = "mmssms.db";
     //static final int DATABASE_VERSION = 61;
-    static final int DATABASE_VERSION = 62;
-    private final Context mContext;
+    //static final int DATABASE_VERSION = 62;
+static final int DATABASE_VERSION = 63;    
+private final Context mContext;
     private LowStorageMonitor mLowStorageMonitor;
 
     private static final String SUB_ID = "sub_id";
@@ -597,7 +598,8 @@
                    Mms.DELIVERY_TIME + " INTEGER," +
                    Mms.DELIVERY_REPORT + " INTEGER," +
                    Mms.LOCKED + " INTEGER DEFAULT 0," +
-                   Mms.PHONE_ID + " INTEGER DEFAULT -1, " +
+		   Mms.SUBSCRIPTION_ID + " INTEGER DEFAULT -1, " +
+		   Mms.PHONE_ID + " INTEGER DEFAULT -1, " +
                    Mms.SEEN + " INTEGER DEFAULT 0," +
                    Mms.CREATOR + " TEXT," +
                    Mms.TEXT_ONLY + " INTEGER DEFAULT 0" +
@@ -843,6 +845,7 @@
                    "body TEXT," +
                    "service_center TEXT," +
                    "locked INTEGER DEFAULT 0," +
+		   "sub_id INTEGER DEFAULT -1, " +
                    "phone_id INTEGER DEFAULT -1, " +
                    "error_code INTEGER DEFAULT 0," +
                    "creator TEXT," +
@@ -862,6 +865,7 @@
                    "sequence INTEGER," + // the part number of this message
                    "destination_port INTEGER," +
                    "address TEXT," +
+		   "sub_id INTEGER DEFAULT -1, " +
                    "phone_id INTEGER DEFAULT -1, " +
                    "pdu TEXT);"); // the raw PDU for this part
 
@@ -930,7 +934,8 @@
                    PendingMessages.ERROR_CODE + " INTEGER," +
                    PendingMessages.RETRY_INDEX + " INTEGER NOT NULL DEFAULT 0," +
                    PendingMessages.DUE_TIME + " INTEGER," +
-                   PendingMessages.PHONE_ID + " INTEGER DEFAULT 0, " +
+		   PendingMessages.SUBSCRIPTION_ID + " INTEGER DEFAULT 0, " +
+		   PendingMessages.PHONE_ID + " INTEGER DEFAULT 0, " +
                    PendingMessages.LAST_TRY + " INTEGER);");
 
     }
@@ -1365,6 +1370,22 @@
                 } finally {
                     db.endTransaction();
                 }
+// fall through
+        case 62:
+            if (currentVersion <= 62) {
+                return;
+            }
+
+            db.beginTransaction();
+            try {
+                upgradeDatabaseToVersion63(db);
+                db.setTransactionSuccessful();
+            } catch (Throwable ex) {
+                Log.e(TAG, ex.getMessage(), ex);
+                break;
+            } finally {
+                db.endTransaction();
+            }
             return;
         }
 
@@ -1614,6 +1635,17 @@
             db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU + " ADD COLUMN " + FPExtTelephony.DELIVERY_R +" INTEGER DEFAULT 0");
     }
 
+    private void upgradeDatabaseToVersion63(SQLiteDatabase db) {
+        db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU +" ADD COLUMN "
+                + SUB_ID + " INTEGER DEFAULT -1");
+        db.execSQL("ALTER TABLE " + MmsSmsProvider.TABLE_PENDING_MSG +" ADD COLUMN "
+                + "pending_sub_id" + " INTEGER DEFAULT 0");
+        db.execSQL("ALTER TABLE " + SmsProvider.TABLE_SMS +" ADD COLUMN "
+                + SUB_ID + " INTEGER DEFAULT -1");
+        db.execSQL("ALTER TABLE " + SmsProvider.TABLE_RAW +" ADD COLUMN "
+                + SUB_ID + " INTEGER DEFAULT -1");
+    }
+
     // Try to copy data from existing src column to new column which supposed
     // to be added before calling this functin.
     // If src or dest column not exsit, it will just bail out.
@@ -1919,6 +1951,7 @@
                 Mms.DELIVERY_TIME + " INTEGER," +
                 Mms.DELIVERY_REPORT + " INTEGER," +
                 Mms.LOCKED + " INTEGER DEFAULT 0," +
+		Mms.SUBSCRIPTION_ID + " INTEGER DEFAULT -1," +
                 Mms.PHONE_ID + " INTEGER DEFAULT -1," +
                 Mms.SEEN + " INTEGER DEFAULT 0," +
                 Mms.TEXT_ONLY + " INTEGER DEFAULT 0" +
diff --git a/src/com/android/providers/telephony/MmsSmsProvider.java b/src/com/android/providers/telephony/MmsSmsProvider.java
index 205cce1..d61cbfe 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -132,7 +132,7 @@
     // These are the columns that appear in both the MMS ("pdu") and
     // SMS ("sms") message tables.
     private static final String[] MMS_SMS_COLUMNS =
-            { BaseColumns._ID, Mms.DATE, Mms.DATE_SENT, Mms.READ, Mms.THREAD_ID, Mms.LOCKED,
+            { BaseColumns._ID, Mms.DATE, Mms.DATE_SENT, Mms.READ, Mms.THREAD_ID, Mms.LOCKED, Mms.SUBSCRIPTION_ID,
                     Mms.PHONE_ID };
 
     // These are the columns that appear only in the MMS message
