--- UPower-0.9.1.orig/src/linux/up-device-supply.c 2010-02-10 19:09:31.000000000 +0200 +++ UPower-0.9.1/src/linux/up-device-supply.c 2011-02-02 14:38:54.000000000 +0200 @@ -569,6 +569,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);