diff --git a/core/java/android/net/MobileDataStateTracker.java b/core/java/android/net/MobileDataStateTracker.java
index 3e4bbd5..b1421d1 100644
--- a/core/java/android/net/MobileDataStateTracker.java
+++ b/core/java/android/net/MobileDataStateTracker.java
@@ -320,6 +320,7 @@
                 mEnabled = true;
                 // need to set self to CONNECTING so the below message is handled.
                 mMobileDataState = Phone.DataState.CONNECTING;
+                setDetailedState(DetailedState.CONNECTING, Phone.REASON_APN_CHANGED, null);
                 //send out a connected message
                 Intent intent = new Intent(TelephonyIntents.
                         ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
diff --git a/core/java/android/net/NetworkStateTracker.java b/core/java/android/net/NetworkStateTracker.java
index 418f511..54529ae 100644
--- a/core/java/android/net/NetworkStateTracker.java
+++ b/core/java/android/net/NetworkStateTracker.java
@@ -48,7 +48,7 @@
     private boolean mDefaultRouteSet;
     private boolean mTeardownRequested;
 
-    private static boolean DBG = Config.LOGV;
+    private static boolean DBG = true;
     private static final String TAG = "NetworkStateTracker";
 
     public static final int EVENT_STATE_CHANGED = 1;
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index df37d35..4e24a4b 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -357,6 +357,11 @@
         for (int t=0; t <= ConnectivityManager.MAX_RADIO_TYPE; t++) {
             if (t != mNetworkPreference &&
                     mNetTrackers[t].getNetworkInfo().isConnected()) {
+                if (DBG) {
+                    Log.d(TAG, "tearing down " +
+                            mNetTrackers[t].getNetworkInfo() +
+                            " in enforcePreference");
+                }
                 teardown(mNetTrackers[t]);
             }
         }
@@ -1232,6 +1237,10 @@
                         NetworkInfo i = net.getNetworkInfo();
                         if (i.isConnected() &&
                                 !mNetAttributes[i.getType()].isDefault()) {
+                            if (DBG) {
+                                Log.d(TAG, "tearing down " + i +
+                                        " to restore the default network");
+                            }
                             teardown(net);
                         }
                     }
