diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 94c8cda..c58e001 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -104,7 +104,6 @@
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
-import android.view.ViewTreeObserver.OnGlobalLayoutListener;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.AdapterView.OnItemSelectedListener;
@@ -2164,15 +2163,19 @@
         final boolean hasEthernet = conn.isNetworkSupported(TYPE_ETHERNET);
 
         final long ethernetBytes;
-        try {
-            ethernetBytes = mStatsSession.getSummaryForNetwork(
-                    NetworkTemplate.buildTemplateEthernet(), Long.MIN_VALUE, Long.MAX_VALUE)
-                    .getTotalBytes();
-        } catch (RemoteException e) {
-            throw new RuntimeException(e);
+        if (mStatsSession != null) {
+            try {
+                ethernetBytes = mStatsSession.getSummaryForNetwork(
+                        NetworkTemplate.buildTemplateEthernet(), Long.MIN_VALUE, Long.MAX_VALUE)
+                        .getTotalBytes();
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        } else {
+            ethernetBytes = 0;
         }
 
-        // suppress ethernet unless traffic has occurred
+        // only show ethernet when both hardware present and traffic has occurred
         return hasEthernet && ethernetBytes > 0;
     }
 
diff --git a/src/com/android/settings/net/DataUsageMeteredSettings.java b/src/com/android/settings/net/DataUsageMeteredSettings.java
index 69326bc..ad12311 100644
--- a/src/com/android/settings/net/DataUsageMeteredSettings.java
+++ b/src/com/android/settings/net/DataUsageMeteredSettings.java
@@ -41,6 +41,8 @@
  */
 public class DataUsageMeteredSettings extends SettingsPreferenceFragment {
 
+    private static final boolean SHOW_MOBILE_CATEGORY = false;
+
     private NetworkPolicyManager mPolicyManager;
     private WifiManager mWifiManager;
 
@@ -70,7 +72,7 @@
     }
 
     private void updateNetworks(Context context) {
-        if (hasReadyMobileRadio(context)) {
+        if (SHOW_MOBILE_CATEGORY && hasReadyMobileRadio(context)) {
             mMobileCategory.removeAll();
             mMobileCategory.addPreference(buildMobilePref(context));
         } else {
