diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 0077472..0ad2972 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="calendar_storage" msgid="5387668002987562770">"कैलेंडर मेमोरी"</string>
+    <string name="calendar_storage" msgid="5387668002987562770">"कैलेंडर संग्रहण"</string>
     <string name="upgrade_msg" msgid="2792831029435070926">"कैलेंडर डेटाबेस अपग्रेड हो रहा है."</string>
     <string name="calendar_default_name" msgid="6924293766625167275">"सामान्य"</string>
     <string name="calendar_info" msgid="6687678621418059281">"कैलेंडर जानकारी"</string>
@@ -27,7 +27,7 @@
     <string name="provider_label" msgid="2306513350843464739">"कैलेंडर"</string>
     <string name="debug_tool_delete_button" msgid="5052706251268452090">"अभी हटाएं"</string>
     <string name="debug_tool_start_button" msgid="5384780896342913563">"प्रारंभ करें"</string>
-    <string name="debug_tool_message" msgid="4862486669932821937">"अब आप 1) अपने कैलेंडर डेटाबेस की प्रति SD कार्ड/USB मेमोरी पर बनाने वाले हैं जो किसी भी ऐप्स  द्वारा पढ़ी जा सकती है और 2) उसे ईमेल करने वाले हैं. जैसे ही आप डिवाइस से सफलतापूर्वक इसकी प्रति बना लेते हैं या ईमेल प्राप्त हो जाती है तो इस प्रति को अवश्य हटा दें."</string>
+    <string name="debug_tool_message" msgid="4862486669932821937">"अब आप 1) अपने कैलेंडर डेटाबेस की प्रति SD कार्ड/USB संग्रहण पर बनाने वाले हैं जो किसी भी ऐप्स  द्वारा पढ़ी जा सकती है और 2) उसे ईमेल करने वाले हैं. जैसे ही आप डिवाइस से सफलतापूर्वक इसकी प्रति बना लेते हैं या ईमेल प्राप्त हो जाती है तो इस प्रति को अवश्य हटा दें."</string>
     <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"अपनी फ़ाइल भेजने के लिए कोई प्रोग्राम चुनें"</string>
     <string name="debug_tool_email_subject" msgid="2403590332256471194">"कैलेंडर डेटाबेस अटैचमेंट"</string>
     <string name="debug_tool_email_body" msgid="4835949635324134017">"यह अटैचमेंट मेरा कैलेंडर डेटाबेस है जिसमें मेरे सभी अपॉइंटमेंट और व्यक्तिगत जानकारी है. सावधानी से कार्य करें."</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index e59efdc..df82632 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -27,7 +27,7 @@
     <string name="provider_label" msgid="2306513350843464739">"יומן"</string>
     <string name="debug_tool_delete_button" msgid="5052706251268452090">"מחק כעת"</string>
     <string name="debug_tool_start_button" msgid="5384780896342913563">"התחל"</string>
-    <string name="debug_tool_message" msgid="4862486669932821937">"‏אתה עומד 1) ליצור עותק של מסד הנתונים של לוח השנה בכרטיס SD/התקן USB, הניתן לקריאה על ידי כל יישום ו-2) לשלוח אותו באימייל. זכור למחוק עותק זה מהמכשיר מיד לאחר שהעתקת אותו בהצלחה או לאחר שהאימייל התקבל."</string>
+    <string name="debug_tool_message" msgid="4862486669932821937">"‏אתה עומד 1) ליצור עותק של מסד הנתונים של לוח השנה בכרטיס SD/התקן USB, הניתן לקריאה על ידי כל יישום ו-2) לשלוח אותו בדוא\"ל. זכור למחוק עותק זה מהמכשיר מיד לאחר שהעתקת אותו בהצלחה או לאחר שהדוא\"ל התקבל."</string>
     <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"בחר תכנית לשליחת הקובץ"</string>
     <string name="debug_tool_email_subject" msgid="2403590332256471194">"מצורף מסד נתונים של יומן"</string>
     <string name="debug_tool_email_body" msgid="4835949635324134017">"מצורף מסד הנתונים של לוח השנה שלי, עם כל הפגישות והמידע האישי שלי. שמור עליו היטב."</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 114ce7e..4b94e84 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -27,8 +27,8 @@
     <string name="provider_label" msgid="2306513350843464739">"Agenda"</string>
     <string name="debug_tool_delete_button" msgid="5052706251268452090">"Nu verwijderen"</string>
     <string name="debug_tool_start_button" msgid="5384780896342913563">"Starten"</string>
-    <string name="debug_tool_message" msgid="4862486669932821937">"Je staat op het punt 1) een kopie van je agenda-database te maken op de SD-kaart/USB-opslag die kan worden gelezen via een app en 2) deze te e-mailen. Verwijder de kopie zodra je deze van het apparaat hebt gekopieerd of de e-mail is ontvangen."</string>
-    <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"Selecteer een programma om je bestand te verzenden"</string>
+    <string name="debug_tool_message" msgid="4862486669932821937">"U staat op het punt 1) een kopie van uw agenda-database te maken op de SD-kaart/USB-opslag die kan worden gelezen via een app en 2) deze te e-mailen. Verwijder de kopie zodra u deze van het apparaat heeft gekopieerd of de e-mail is ontvangen."</string>
+    <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"Selecteer een programma om uw bestand te verzenden"</string>
     <string name="debug_tool_email_subject" msgid="2403590332256471194">"Database voor Agenda bijgevoegd"</string>
     <string name="debug_tool_email_body" msgid="4835949635324134017">"Bijgevoegd vindt u mijn Agenda-database met al mijn afspraken en persoonlijke gegevens. Gelieve hier zorgvuldig mee om te gaan."</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5cf22d5..a615a31 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -27,7 +27,7 @@
     <string name="provider_label" msgid="2306513350843464739">"Agenda"</string>
     <string name="debug_tool_delete_button" msgid="5052706251268452090">"Excluir agora"</string>
     <string name="debug_tool_start_button" msgid="5384780896342913563">"Início"</string>
-    <string name="debug_tool_message" msgid="4862486669932821937">"Você está prestes a 1) fazer uma cópia de seu banco de dados da agenda para o cartão SD/armazenamento USB, que pode ser lido por qualquer app e 2) enviá-lo por e-mail. Lembre-se de excluir o banco de dados após tê-lo copiado ou ter recebido o e-mail."</string>
+    <string name="debug_tool_message" msgid="4862486669932821937">"Você está prestes a 1) fazer uma cópia de seu banco de dados da agenda para o cartão SD/armazenamento USB, que pode ser lido por qualquer aplicativo e 2) enviá-lo por e-mail. Lembre-se de excluir o banco de dados após tê-lo copiado ou ter recebido o e-mail."</string>
     <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"Selecione um programa para enviar seu arquivo"</string>
     <string name="debug_tool_email_subject" msgid="2403590332256471194">"O banco de dados da agenda foi anexado"</string>
     <string name="debug_tool_email_body" msgid="4835949635324134017">"O banco de dados da minha agenda está anexado, contendo todos os meus compromissos e informações pessoais. Use-o com cuidado."</string>
diff --git a/src/com/android/providers/calendar/CalendarProvider2.java b/src/com/android/providers/calendar/CalendarProvider2.java
index 9af4c77..5002177 100644
--- a/src/com/android/providers/calendar/CalendarProvider2.java
+++ b/src/com/android/providers/calendar/CalendarProvider2.java
@@ -834,11 +834,11 @@
     @Override
     public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
             String sortOrder) {
-        final long identity = Binder.clearCallingIdentity();
+        final long identity = clearCallingIdentityInternal();
         try {
             return queryInternal(uri, projection, selection, selectionArgs, sortOrder);
         } finally {
-            Binder.restoreCallingIdentity(identity);
+            restoreCallingIdentityInternal(identity);
         }
     }
 
@@ -5074,6 +5074,11 @@
     }
 
     private String getCallingPackageName() {
+        if (getCachedCallingPackage() != null) {
+            // If the calling package is null, use the best available as a fallback.
+            return getCachedCallingPackage();
+        }
+
         final PackageManager pm = getContext().getPackageManager();
         final int uid = Binder.getCallingUid();
         final String[] packages = pm.getPackagesForUid(uid);
diff --git a/src/com/android/providers/calendar/SQLiteContentProvider.java b/src/com/android/providers/calendar/SQLiteContentProvider.java
index ad0e028..01afb23 100644
--- a/src/com/android/providers/calendar/SQLiteContentProvider.java
+++ b/src/com/android/providers/calendar/SQLiteContentProvider.java
@@ -27,6 +27,7 @@
 import android.database.sqlite.SQLiteTransactionListener;
 import android.net.Uri;
 import android.os.Binder;
+import android.os.Process;
 import android.provider.CalendarContract;
 
 import java.util.ArrayList;
@@ -93,7 +94,7 @@
         if (!applyingBatch) {
             mDb = mOpenHelper.getWritableDatabase();
             mDb.beginTransactionWithListener(this);
-            final long identity = Binder.clearCallingIdentity();
+            final long identity = clearCallingIdentityInternal();
             try {
                 result = insertInTransaction(uri, values, isCallerSyncAdapter);
                 if (result != null) {
@@ -101,7 +102,7 @@
                 }
                 mDb.setTransactionSuccessful();
             } finally {
-                Binder.restoreCallingIdentity(identity);
+                restoreCallingIdentityInternal(identity);
                 mDb.endTransaction();
             }
 
@@ -121,7 +122,7 @@
         boolean isCallerSyncAdapter = getIsCallerSyncAdapter(uri);
         mDb = mOpenHelper.getWritableDatabase();
         mDb.beginTransactionWithListener(this);
-        final long identity = Binder.clearCallingIdentity();
+        final long identity = clearCallingIdentityInternal();
         try {
             for (int i = 0; i < numValues; i++) {
                 Uri result = insertInTransaction(uri, values[i], isCallerSyncAdapter);
@@ -132,7 +133,7 @@
             }
             mDb.setTransactionSuccessful();
         } finally {
-            Binder.restoreCallingIdentity(identity);
+            restoreCallingIdentityInternal(identity);
             mDb.endTransaction();
         }
 
@@ -148,7 +149,7 @@
         if (!applyingBatch) {
             mDb = mOpenHelper.getWritableDatabase();
             mDb.beginTransactionWithListener(this);
-            final long identity = Binder.clearCallingIdentity();
+            final long identity = clearCallingIdentityInternal();
             try {
                 count = updateInTransaction(uri, values, selection, selectionArgs,
                             isCallerSyncAdapter);
@@ -157,7 +158,7 @@
                 }
                 mDb.setTransactionSuccessful();
             } finally {
-                Binder.restoreCallingIdentity(identity);
+                restoreCallingIdentityInternal(identity);
                 mDb.endTransaction();
             }
 
@@ -181,7 +182,7 @@
         if (!applyingBatch) {
             mDb = mOpenHelper.getWritableDatabase();
             mDb.beginTransactionWithListener(this);
-            final long identity = Binder.clearCallingIdentity();
+            final long identity = clearCallingIdentityInternal();
             try {
                 count = deleteInTransaction(uri, selection, selectionArgs, isCallerSyncAdapter);
                 if (count > 0) {
@@ -189,7 +190,7 @@
                 }
                 mDb.setTransactionSuccessful();
             } finally {
-                Binder.restoreCallingIdentity(identity);
+                restoreCallingIdentityInternal(identity);
                 mDb.endTransaction();
             }
 
@@ -222,7 +223,7 @@
         mDb = mOpenHelper.getWritableDatabase();
         mDb.beginTransactionWithListener(this);
         final boolean isCallerSyncAdapter = getIsCallerSyncAdapter(operations.get(0).getUri());
-        final long identity = Binder.clearCallingIdentity();
+        final long identity = clearCallingIdentityInternal();
         try {
             mApplyingBatch.set(true);
             final ContentProviderResult[] results = new ContentProviderResult[numOperations];
@@ -239,7 +240,7 @@
             mApplyingBatch.set(false);
             mDb.endTransaction();
             onEndTransaction(!isCallerSyncAdapter);
-            Binder.restoreCallingIdentity(identity);
+            restoreCallingIdentityInternal(identity);
         }
     }
 
@@ -274,4 +275,58 @@
      * Some URI's are maintained locally so we should not request a sync for them
      */
     protected abstract boolean shouldSyncFor(Uri uri);
+
+    /** The package to most recently query(), not including further internally recursive calls. */
+    private final ThreadLocal<String> mCallingPackage = new ThreadLocal<String>();
+
+    /**
+     * The calling Uid when a calling package is cached, so we know when the stack of any
+     * recursive calls to clearCallingIdentity and restoreCallingIdentity is complete.
+     */
+    private final ThreadLocal<Integer> mOriginalCallingUid = new ThreadLocal<Integer>();
+
+
+    protected String getCachedCallingPackage() {
+        return mCallingPackage.get();
+    }
+
+    /**
+     * Call {@link android.os.Binder#clearCallingIdentity()}, while caching the calling package
+     * name, so that it can be saved if this is part of an event mutation.
+     */
+    protected long clearCallingIdentityInternal() {
+        // Only set the calling package if the calling UID is not our own.
+        int uid = Process.myUid();
+        int callingUid = Binder.getCallingUid();
+        if (uid != callingUid) {
+            try {
+                mOriginalCallingUid.set(callingUid);
+                String callingPackage = getCallingPackage();
+                mCallingPackage.set(callingPackage);
+            } catch (SecurityException e) {
+                // If this exception is thrown, clearCallingIdentity has already been called, and
+                // calling package is already available.
+            }
+        }
+
+        return Binder.clearCallingIdentity();
+    }
+
+    /**
+     * Call {@link Binder#restoreCallingIdentity(long)}.
+     * </p>
+     * If this is the last restore on the stack of calls to
+     * {@link android.os.Binder#clearCallingIdentity()}, then the cached calling package will also
+     * be cleared.
+     * @param identity
+     */
+    protected void restoreCallingIdentityInternal(long identity) {
+        Binder.restoreCallingIdentity(identity);
+
+        int callingUid = Binder.getCallingUid();
+        if (mOriginalCallingUid.get() != null && mOriginalCallingUid.get() == callingUid) {
+            mCallingPackage.set(null);
+            mOriginalCallingUid.set(null);
+        }
+    }
 }
