diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index b10ca63..306535e 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -957,6 +957,10 @@
             updateBucketNames(db, "video");
         }
 
+        /*
+         *  Android 2.2 shipped with database version 89
+         */
+
         if (fromVersion < 91) {
             // Never query by mini_thumb_magic_index
             db.execSQL("DROP INDEX IF EXISTS mini_thumb_magic_index");
@@ -981,6 +985,17 @@
             db.execSQL("DELETE from albums");
             db.execSQL("UPDATE audio_meta SET date_modified=0;");
         }
+
+        /*
+         *  Android 2.3 shipped with database version 93
+         */
+
+        if (fromVersion < 100) {
+            db.execSQL("ALTER TABLE audio_meta ADD COLUMN album_artist TEXT;");
+            recreateAudioView(db);
+            db.execSQL("UPDATE audio_meta SET date_modified=0;");
+        }
+
         sanityCheck(db, fromVersion);
     }
 
@@ -1861,11 +1876,7 @@
                 // the view.
                 ContentValues values = new ContentValues(initialValues);
 
-                // TODO Remove this and actually store the album_artist in the
-                // database. For now this is here so the media scanner can start
-                // sending us the album_artist, even though it's not in the db yet.
                 String albumartist = values.getAsString(MediaStore.Audio.Media.ALBUM_ARTIST);
-                values.remove(MediaStore.Audio.Media.ALBUM_ARTIST);
                 String compilation = values.getAsString(MediaStore.Audio.Media.COMPILATION);
                 values.remove(MediaStore.Audio.Media.COMPILATION);
 
@@ -2332,11 +2343,7 @@
                 case AUDIO_MEDIA_ID:
                     {
                         ContentValues values = new ContentValues(initialValues);
-                        // TODO Remove this and actually store the album_artist in the
-                        // database. For now this is here so the media scanner can start
-                        // sending us the album_artist, even though it's not in the db yet.
                         String albumartist = values.getAsString(MediaStore.Audio.Media.ALBUM_ARTIST);
-                        values.remove(MediaStore.Audio.Media.ALBUM_ARTIST);
                         String compilation = values.getAsString(MediaStore.Audio.Media.COMPILATION);
                         values.remove(MediaStore.Audio.Media.COMPILATION);
 
@@ -3220,7 +3227,7 @@
 
     private static String TAG = "MediaProvider";
     private static final boolean LOCAL_LOGV = true;
-    private static final int DATABASE_VERSION = 93;
+    private static final int DATABASE_VERSION = 100;
     private static final String INTERNAL_DATABASE_NAME = "internal.db";
     private static final String EXTERNAL_DATABASE_NAME = "external.db";
 
