diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index b4e6bd5..e89dc0b 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -808,11 +808,6 @@
         public final void scheduleReceiver(Intent intent, ActivityInfo info,
                 CompatibilityInfo compatInfo, int resultCode, String data, Bundle extras,
                 boolean sync, int sendingUser, int processState) {
-            // TODO: Debugging added for bug:36406078 . Remove when done
-            if (Log.isLoggable("36406078", Log.DEBUG)) {
-                Log.d(TAG, "scheduleReceiver");
-            }
-
             updateProcessState(processState, false);
             ReceiverData r = new ReceiverData(intent, resultCode, data, extras,
                     sync, false, mAppThread.asBinder(), sendingUser);
@@ -899,11 +894,6 @@
                 CompatibilityInfo compatInfo, Map services, Bundle coreSettings,
                 String buildSerial) {
 
-            // TODO: Debugging added for bug:36406078 . Remove when done
-            if (Log.isLoggable("36406078", Log.DEBUG)) {
-                Log.d(TAG, "bindApplication: " + processName);
-            }
-
             if (services != null) {
                 // Setup the service cache in the ServiceManager
                 ServiceManager.initServiceCache(services);
@@ -3239,10 +3229,6 @@
         if (receiver.getPendingResult() != null) {
             data.finish();
         }
-        // TODO: Debugging added for bug:36406078 . Remove when done
-        if (Log.isLoggable("36406078", Log.DEBUG)) {
-            Log.d(TAG, "handleReceiver done");
-        }
     }
 
     // Instantiate a BackupAgent and tell it that it's alive
@@ -5778,10 +5764,6 @@
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
-        // TODO: Debugging added for bug:36406078 . Remove when done
-        if (Log.isLoggable("36406078", Log.DEBUG)) {
-            Log.d(TAG, "handleBindApplication done");
-        }
     }
 
     /*package*/ final void finishInstrumentation(int resultCode, Bundle results) {
