diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
index 1ec69c9..85067cb 100644
--- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
@@ -37,6 +37,7 @@
 import android.net.Uri;
 import android.os.Binder;
 import android.os.Bundle;
+import android.os.SystemClock;
 import android.provider.BaseColumns;
 import android.provider.ContactsContract;
 import android.provider.CallLog.Calls;
@@ -2125,7 +2126,7 @@
     public void setLocale(ContactsProvider2 provider, Locale locale) {
         Log.i(TAG, "Switching to locale " + locale);
 
-        long start = System.currentTimeMillis();
+        long start = SystemClock.uptimeMillis();
         SQLiteDatabase db = getWritableDatabase();
         db.setLocale(locale);
         db.beginTransaction();
@@ -2143,7 +2144,7 @@
             db.endTransaction();
         }
 
-        Log.i(TAG, "Locale change completed in " + (System.currentTimeMillis() - start) + "ms");
+        Log.i(TAG, "Locale change completed in " + (SystemClock.uptimeMillis() - start) + "ms");
     }
 
     /**
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java
index 3861a22..40be58f 100644
--- a/src/com/android/providers/contacts/ContactsProvider2.java
+++ b/src/com/android/providers/contacts/ContactsProvider2.java
@@ -2129,14 +2129,6 @@
 
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
         final String providerLocale = prefs.getString(PREF_LOCALE, null);
-        if (providerLocale == null) {
-            // The provider has just been created for the first time. There are no
-            // contacts in the database, so we can safely set locale on the UI thread.
-            mDbHelper.setLocale(ContactsProvider2.this, mCurrentLocale);
-            prefs.edit().putString(PREF_LOCALE, mCurrentLocale.toString()).commit();
-            return;
-        }
-
         final Locale currentLocale = mCurrentLocale;
         if (currentLocale.toString().equals(providerLocale)) {
             return;
