diff --git a/src/com/android/phone/CallLogger.java b/src/com/android/phone/CallLogger.java
index fcc55ce..27dbec4 100644
--- a/src/com/android/phone/CallLogger.java
+++ b/src/com/android/phone/CallLogger.java
@@ -109,30 +109,7 @@
      */
     public void logCall(CallerInfo ci, String number, int presentation, int callType, long start,
                         long duration) {
-        final boolean isEmergencyNumber = PhoneNumberUtils.isLocalEmergencyNumber(mApplication,
-                number);
-
-        // On some devices, to avoid accidental redialing of
-        // emergency numbers, we *never* log emergency calls to
-        // the Call Log.  (This behavior is set on a per-product
-        // basis, based on carrier requirements.)
-        final boolean okToLogEmergencyNumber =
-            mApplication.getResources().getBoolean(
-                        R.bool.allow_emergency_numbers_in_call_log);
-
-        // Don't log emergency numbers if the device doesn't allow it,
-        boolean isOkToLogThisCall = !isEmergencyNumber || okToLogEmergencyNumber;
-
-        if (isOkToLogThisCall) {
-            if (DBG) {
-                log("sending Calllog entry: " + ci + ", " + PhoneUtils.toLogSafePhoneNumber(number)
-                    + "," + presentation + ", " + callType + ", " + start + ", " + duration);
-            }
-
-            CallLogAsync.AddCallArgs args = new CallLogAsync.AddCallArgs(mApplication, ci, number,
-                    presentation, callType, null, start, duration);
-            mCallLog.addCall(args);
-        }
+        // no-op
     }
 
     /**
