--- upower-0.9.8.orig/src/linux/up-device-supply.c 2011-02-02 15:04:19.000000000 +0200 +++ upower-0.9.8/src/linux/up-device-supply.c 2011-02-02 19:36:28.000000000 +0200 @@ -591,6 +591,10 @@ if (energy_rate > 100*1000) energy_rate = 0; + /* sanity check to less than energy_full_design */ + if (state == UP_DEVICE_STATE_DISCHARGING && energy_rate > energy_full_design) + energy_rate = 0; + /* the hardware reporting failed -- try to calculate this */ if (energy_rate < 0) up_device_supply_calculate_rate (supply);