diff --git a/src/com/android/providers/telephony/MmsProvider.java b/src/com/android/providers/telephony/MmsProvider.java
index bc382fd..ed5ea8d 100644
--- a/src/com/android/providers/telephony/MmsProvider.java
+++ b/src/com/android/providers/telephony/MmsProvider.java
@@ -65,7 +65,7 @@
 
     @Override
     public boolean onCreate() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily enable this so not to break existing apps
             setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);
         }
diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index 58ec263..b79e36a 100644
--- a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
+++ b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
@@ -215,7 +215,7 @@
     private static boolean sFakeLowStorageTest = false;     // for testing only
 
     static final String DATABASE_NAME = "mmssms.db";
-    static final int DATABASE_VERSION = 58;
+    static final int DATABASE_VERSION = 59;
     private final Context mContext;
     private LowStorageMonitor mLowStorageMonitor;
 
@@ -594,6 +594,8 @@
                    Mms.LOCKED + " INTEGER DEFAULT 0," +
                    Mms.SUB_ID + " INTEGER DEFAULT -1, " +
                    Mms.SEEN + " INTEGER DEFAULT 0," +
+                   Mms.ARCHIVED + " INTEGER DEFAULT 0," +
+                   Mms.CREATOR + " TEXT," +
                    Mms.TEXT_ONLY + " INTEGER DEFAULT 0" +
                    ");");
 
@@ -838,6 +840,8 @@
                    "locked INTEGER DEFAULT 0," +
                    "sub_id INTEGER DEFAULT -1, " +
                    "error_code INTEGER DEFAULT 0," +
+                   "archived INTEGER DEFAULT 0," +
+                   "creator TEXT," +
                    "seen INTEGER DEFAULT 0" +
                    ");");
 
@@ -1293,6 +1297,22 @@
             } finally {
                 db.endTransaction();
             }
+            // fall through
+        case 58:
+            if (currentVersion <= 58) {
+                return;
+            }
+
+            db.beginTransaction();
+            try {
+                upgradeDatabaseToVersion59(db);
+                db.setTransactionSuccessful();
+            } catch (Throwable ex) {
+                Log.e(TAG, ex.getMessage(), ex);
+                break;
+            } finally {
+                db.endTransaction();
+            }
             return;
         }
 
@@ -1505,6 +1525,17 @@
                 + Sms.SUB_ID + " INTEGER DEFAULT -1");
     }
 
+    private void upgradeDatabaseToVersion59(SQLiteDatabase db) {
+        db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU +" ADD COLUMN "
+                + Mms.ARCHIVED + " INTEGER DEFAULT 0");
+        db.execSQL("ALTER TABLE " + MmsProvider.TABLE_PDU +" ADD COLUMN "
+                + Mms.CREATOR + " TEXT");
+        db.execSQL("ALTER TABLE " + SmsProvider.TABLE_SMS +" ADD COLUMN "
+                + Sms.ARCHIVED + " INTEGER DEFAULT 0");
+        db.execSQL("ALTER TABLE " + SmsProvider.TABLE_SMS +" ADD COLUMN "
+                + Sms.CREATOR + " TEXT");
+    }
+
     @Override
     public synchronized SQLiteDatabase getWritableDatabase() {
         SQLiteDatabase db = super.getWritableDatabase();
diff --git a/src/com/android/providers/telephony/MmsSmsProvider.java b/src/com/android/providers/telephony/MmsSmsProvider.java
index e07fe54..3c6fae9 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -285,7 +285,7 @@
 
     @Override
     public boolean onCreate() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily enable this so not to break existing apps
             setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);
         }
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java
index 33dd4ba..89736e5 100644
--- a/src/com/android/providers/telephony/SmsProvider.java
+++ b/src/com/android/providers/telephony/SmsProvider.java
@@ -84,7 +84,7 @@
 
     @Override
     public boolean onCreate() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily enable this so not to break existing apps
             setAppOps(AppOpsManager.OP_READ_SMS, AppOpsManager.OP_WRITE_SMS);
         }
diff --git a/src/com/android/providers/telephony/SmsWritePermission.java b/src/com/android/providers/telephony/SmsWritePermission.java
index 502bf14..186a75f 100644
--- a/src/com/android/providers/telephony/SmsWritePermission.java
+++ b/src/com/android/providers/telephony/SmsWritePermission.java
@@ -28,7 +28,7 @@
     public static final String TAG = "SmsWritePermission";
 
     public static void enforce() {
-        if (!Telephony.NEW_API) {
+        if (!Telephony.AUTO_PERSIST) {
             // TODO(ywen): Temporarily disable this so not to break existing apps
             return;
         }
