diff --git a/src/com/android/phone/OutgoingCallBroadcaster.java b/src/com/android/phone/OutgoingCallBroadcaster.java
index f076969..dabc4cf 100644
--- a/src/com/android/phone/OutgoingCallBroadcaster.java
+++ b/src/com/android/phone/OutgoingCallBroadcaster.java
@@ -239,6 +239,7 @@
             action = emergencyNumber
                     ? Intent.ACTION_CALL_EMERGENCY
                     : Intent.ACTION_CALL;
+            if (DBG) Log.v(TAG, "- updating action from CALL_PRIVILEGED to " + action);
             intent.setAction(action);
         }
 
@@ -343,7 +344,7 @@
         broadcastIntent.putExtra(EXTRA_ALREADY_CALLED, callNow);
         broadcastIntent.putExtra(EXTRA_ORIGINAL_URI, uri.toString());
 
-        if (DBG) Log.v(TAG, "Broadcasting intent " + intent + ".");
+        if (DBG) Log.v(TAG, "Broadcasting intent: " + broadcastIntent + ".");
         sendOrderedBroadcast(broadcastIntent, PERMISSION, new OutgoingCallReceiver(),
                 null, Activity.RESULT_OK, number, null);
     }
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index ebfaf49..b02a004 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -1370,6 +1370,22 @@
             // querying a new CallerInfo using the connection's phone number.
             String number = c.getAddress();
 
+            if (DBG) {
+                log("###### PhoneUtils.startGetCallerInfo: new query for phone number #####");
+                log("- number (address): " + number);
+                log("- c: " + c);
+                log("- phone: " + c.getCall().getPhone());
+                int phoneType = c.getCall().getPhone().getPhoneType();
+                log("- phoneType: " + phoneType);
+                switch (phoneType) {
+                    case Phone.PHONE_TYPE_NONE: log("  ==> PHONE_TYPE_NONE"); break;
+                    case Phone.PHONE_TYPE_GSM: log("  ==> PHONE_TYPE_GSM"); break;
+                    case Phone.PHONE_TYPE_CDMA: log("  ==> PHONE_TYPE_CDMA"); break;
+                    case Phone.PHONE_TYPE_SIP: log("  ==> PHONE_TYPE_SIP"); break;
+                    default: log("  ==> Unknown phone type"); break;
+                }
+            }
+
             cit = new CallerInfoToken();
             cit.currentInfo = new CallerInfo();
 
@@ -1402,6 +1418,7 @@
                 if (cit.currentInfo.numberPresentation != Connection.PRESENTATION_ALLOWED) {
                     cit.isFinal = true;
                 } else {
+                    if (DBG) log("==> Actually starting CallerInfoAsyncQuery.startQuery()...");
                     cit.asyncQuery = CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context,
                             number, sCallerInfoQueryListener, c);
                     cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
