diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2cf5117..3db7edc 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -176,8 +176,10 @@
     <string name="battery_info_status_charging_ac">(AC)</string>
     <!-- Battery Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="battery_info_status_charging_usb">(USB)</string>
+    <!-- Battery Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="battery_info_status_charging_wireless">(wireless)</string>
     <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
-    <string name="battery_info_status_discharging">Discharging</string>
+    <string name="battery_info_status_discharging">Not charging</string>
     <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="battery_info_status_not_charging">Not charging</string>
     <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
@@ -187,6 +189,7 @@
     <string name="battery_info_power_unplugged">Unplugged</string>
     <string name="battery_info_power_ac">AC</string>
     <string name="battery_info_power_usb">USB</string>
+    <string name="battery_info_power_wireless">wireless</string>
     <string name="battery_info_power_ac_usb">AC+USB</string>
     <string name="battery_info_power_unknown">Unknown</string>
 
diff --git a/src/com/android/settings/BatteryInfo.java b/src/com/android/settings/BatteryInfo.java
index d8046cf..ccad236 100644
--- a/src/com/android/settings/BatteryInfo.java
+++ b/src/com/android/settings/BatteryInfo.java
@@ -102,6 +102,9 @@
                     case BatteryManager.BATTERY_PLUGGED_USB:
                         mPower.setText(getString(R.string.battery_info_power_usb));
                         break;
+                    case BatteryManager.BATTERY_PLUGGED_WIRELESS:
+                        mPower.setText(getString(R.string.battery_info_power_wireless));
+                        break;
                     case (BatteryManager.BATTERY_PLUGGED_AC|BatteryManager.BATTERY_PLUGGED_USB):
                         mPower.setText(getString(R.string.battery_info_power_ac_usb));
                         break;
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index a029342..777a712 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -371,11 +371,15 @@
         if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
             statusString = res.getString(R.string.battery_info_status_charging);
             if (plugType > 0) {
-                statusString = statusString
-                        + " "
-                        + res.getString((plugType == BatteryManager.BATTERY_PLUGGED_AC)
-                                ? R.string.battery_info_status_charging_ac
-                                : R.string.battery_info_status_charging_usb);
+                int resId;
+                if (plugType == BatteryManager.BATTERY_PLUGGED_AC) {
+                    resId = R.string.battery_info_status_charging_ac;
+                } else if (plugType == BatteryManager.BATTERY_PLUGGED_USB) {
+                    resId = R.string.battery_info_status_charging_usb;
+                } else {
+                    resId = R.string.battery_info_status_charging_wireless;
+                }
+                statusString = statusString + " " + res.getString(resId);
             }
         } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
             statusString = res.getString(R.string.battery_info_status_discharging);
