Index: gnome-settings-daemon-3.2.2/plugins/power/gsd-power-manager.c
===================================================================
--- gnome-settings-daemon-3.2.2.orig/plugins/power/gsd-power-manager.c	2012-01-12 16:09:36.927884021 +0100
+++ gnome-settings-daemon-3.2.2/plugins/power/gsd-power-manager.c	2012-01-12 16:56:04.794235047 +0100
@@ -135,6 +135,8 @@
 abs_to_percentage (int min, int max, int value)
 {
 	g_return_val_if_fail (max > min, -1);
+	/* fix the overflow bug when value < 0 & min = 0 */
+	value = CLAMP (value, min, max);
 	return (((value - min) * 100) / (max - min));
 }
 #define ABS_TO_PERCENTAGE(min, max, value) abs_to_percentage(min, max, value)
@@ -3580,7 +3582,8 @@
                              GVariant *parameters,
                              GDBusMethodInvocation *invocation)
 {
-        guint step;
+        /* step should NOT be guint, or value=MIN() below would be overflow during StepUp */
+        gint step;
         gint value = -1;
         gboolean ret;
         guint percentage;
