diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ae0502a..ea70f64 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -8,10 +8,12 @@
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
     <uses-permission android:name="android.permission.MANAGE_USERS" />
     <uses-permission android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION" />
+    <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.SEND_CALL_LOG_CHANGE" />
     <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
+    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
 
     <permission
             android:name="android.permission.SEND_CALL_LOG_CHANGE"
diff --git a/src/com/android/providers/contacts/CallLogProvider.java b/src/com/android/providers/contacts/CallLogProvider.java
index 4237aa1..64ec14d 100644
--- a/src/com/android/providers/contacts/CallLogProvider.java
+++ b/src/com/android/providers/contacts/CallLogProvider.java
@@ -116,6 +116,7 @@
         sCallsProjectionMap = new HashMap<String, String>();
         sCallsProjectionMap.put(Calls._ID, Calls._ID);
         sCallsProjectionMap.put(Calls.NUMBER, Calls.NUMBER);
+        sCallsProjectionMap.put(Calls.POST_DIAL_DIGITS, Calls.POST_DIAL_DIGITS);
         sCallsProjectionMap.put(Calls.NUMBER_PRESENTATION, Calls.NUMBER_PRESENTATION);
         sCallsProjectionMap.put(Calls.DATE, Calls.DATE);
         sCallsProjectionMap.put(Calls.DURATION, Calls.DURATION);
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
index 10f6a2d..c32e672 100644
--- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
@@ -128,7 +128,7 @@
      *   1100-1199 N
      * </pre>
      */
-    static final int DATABASE_VERSION = 1105;
+    static final int DATABASE_VERSION = 1107;
 
     public interface Tables {
         public static final String CONTACTS = "contacts";
@@ -1556,6 +1556,7 @@
                 Calls.NUMBER + " TEXT," +
                 Calls.NUMBER_PRESENTATION + " INTEGER NOT NULL DEFAULT " +
                         Calls.PRESENTATION_ALLOWED + "," +
+                Calls.POST_DIAL_DIGITS + " TEXT NOT NULL DEFAULT ''," +
                 Calls.DATE + " INTEGER," +
                 Calls.DURATION + " INTEGER," +
                 Calls.DATA_USAGE + " INTEGER," +
@@ -3035,6 +3036,16 @@
             oldVersion = 1105;
         }
 
+        if (oldVersion < 1106) {
+            upgradeToVersion1106(db);
+            oldVersion = 1106;
+        }
+
+        if (oldVersion < 1107) {
+            upgradeToVersion1107(db);
+            oldVersion = 1107;
+        }
+
         if (upgradeViewsAndTriggers) {
             createContactsViews(db);
             createGroupsView(db);
@@ -4616,6 +4627,20 @@
                 "account_id);");
     }
 
+    public void upgradeToVersion1106(SQLiteDatabase db) {
+        db.execSQL("ALTER TABLE calls ADD post_dial_digits TEXT NOT NULL DEFAULT ''");
+    }
+
+    public void upgradeToVersion1107(SQLiteDatabase db) {
+        try {
+            db.execSQL("ALTER TABLE calls ADD post_dial_digits TEXT NOT NULL DEFAULT ''");
+        } catch (SQLiteException ignore) {
+            // This is for devices which got initialized without a post_dial_digits
+            // column from version 1106. The exception indicates that the column is
+            // already present, so nothing needs to be done.
+        }
+    }
+
     /**
      * Generate hash_id from data1, data2 and data15 columns.
      * If one of data1 and data2 is not null, using data1 and data2 to get hash_id,
