diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index c83a919..5ed23cf 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -2306,6 +2306,20 @@
 
         boolean routesChanged = (routeDiff.removed.size() != 0 || routeDiff.added.size() != 0);
 
+        // look for a radio-added default route (v4-only for now TODO)
+        RouteInfo[] routes = new RouteInfo[0];
+        try {
+            routes = mNetd.getRoutes(newLp.getInterfaceName());
+        } catch (Exception e) {}
+
+        for (RouteInfo route : routes) {
+            if (route.isDefaultRoute() && route.getGateway() instanceof Inet4Address &&
+                    mAddedRoutes.contains(route) == false) {
+                throw new IllegalStateException("Unexpected default route found for interface "
+                        + newLp.getInterfaceName());
+            }
+        }
+
         for (RouteInfo r : routeDiff.removed) {
             if (isLinkDefault || ! r.isDefaultRoute()) {
                 removeRoute(curLp, r, TO_DEFAULT_TABLE);
