diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java
index b79e36a..a470bb1 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 = 59;
+    static final int DATABASE_VERSION = 60;
     private final Context mContext;
     private LowStorageMonitor mLowStorageMonitor;
 
@@ -594,7 +594,6 @@
                    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" +
                    ");");
@@ -840,7 +839,6 @@
                    "locked INTEGER DEFAULT 0," +
                    "sub_id INTEGER DEFAULT -1, " +
                    "error_code INTEGER DEFAULT 0," +
-                   "archived INTEGER DEFAULT 0," +
                    "creator TEXT," +
                    "seen INTEGER DEFAULT 0" +
                    ");");
@@ -908,6 +906,7 @@
                    Threads.SNIPPET + " TEXT," +
                    Threads.SNIPPET_CHARSET + " INTEGER DEFAULT 0," +
                    Threads.READ + " INTEGER DEFAULT 1," +
+                   Threads.ARCHIVED + " INTEGER DEFAULT 0," +
                    Threads.TYPE + " INTEGER DEFAULT 0," +
                    Threads.ERROR + " INTEGER DEFAULT 0," +
                    Threads.HAS_ATTACHMENT + " INTEGER DEFAULT 0);");
@@ -1313,6 +1312,22 @@
             } finally {
                 db.endTransaction();
             }
+            // fall through
+        case 59:
+            if (currentVersion <= 59) {
+                return;
+            }
+
+            db.beginTransaction();
+            try {
+                upgradeDatabaseToVersion60(db);
+                db.setTransactionSuccessful();
+            } catch (Throwable ex) {
+                Log.e(TAG, ex.getMessage(), ex);
+                break;
+            } finally {
+                db.endTransaction();
+            }
             return;
         }
 
@@ -1527,15 +1542,16 @@
 
     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");
     }
 
+    private void upgradeDatabaseToVersion60(SQLiteDatabase db) {
+        db.execSQL("ALTER TABLE " + MmsSmsProvider.TABLE_THREADS +" ADD COLUMN "
+                + Threads.ARCHIVED + " INTEGER DEFAULT 0");
+    }
+
     @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 8fc7391..1806e01 100644
--- a/src/com/android/providers/telephony/MmsSmsProvider.java
+++ b/src/com/android/providers/telephony/MmsSmsProvider.java
@@ -1259,6 +1259,16 @@
                 break;
             }
 
+            case URI_CONVERSATIONS: {
+                final ContentValues finalValues = new ContentValues(1);
+                if (values.containsKey(Threads.ARCHIVED)) {
+                    // Only allow update archived
+                    finalValues.put(Threads.ARCHIVED, values.getAsBoolean(Threads.ARCHIVED));
+                }
+                affectedRows = db.update(TABLE_THREADS, finalValues, selection, selectionArgs);
+                break;
+            }
+
             default:
                 throw new UnsupportedOperationException(
                         NO_DELETES_INSERTS_OR_UPDATES + uri);
