Index: apps/plugins/lamp.c
===================================================================
--- apps/plugins/lamp.c	(revision 27822)
+++ apps/plugins/lamp.c	(working copy)
@@ -24,6 +24,7 @@
 
 #include "plugin.h"
 #include "lib/helper.h"
+#include "backlight.h"
 
 PLUGIN_HEADER
 
@@ -140,6 +141,7 @@
 
 #ifdef HAVE_BACKLIGHT_BRIGHTNESS
     short old_brightness = rb->global_settings->brightness;
+    static int current_brightness = MAX_BRIGHTNESS_SETTING; /*A known state to start*/
 #endif /* HAVE_BACKLIGHT_BRIGHTNESS */
 #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS
     short old_buttonlight_brightness =
@@ -188,18 +190,24 @@
         switch((button = rb->button_get(true)))
         {
             case LAMP_RIGHT:
+            	cs++;
+                break;
 #ifdef LAMP_NEXT
             case LAMP_NEXT:
+            	if (current_brightness != MAX_BRIGHTNESS_SETTING) { rb->backlight_set_brightness(++current_brightness); }
+		break;
 #endif /* LAMP_NEXT */
-                cs++;
-                break;
+                
 
             case LAMP_LEFT:
+            	cs--;
+                break;
 #ifdef LAMP_PREV
             case LAMP_PREV:
+            	if (current_brightness != MIN_BRIGHTNESS_SETTING) { rb->backlight_set_brightness(--current_brightness); } 
+		break;
 #endif /* LAMP_PREV */
-                cs--;
-                break;
+                
 
             case (LAMP_RIGHT|BUTTON_REPEAT):
             case (LAMP_RIGHT|BUTTON_REL):
@@ -208,10 +216,14 @@
 #ifdef LAMP_NEXT
             case (LAMP_NEXT|BUTTON_REPEAT):
             case (LAMP_NEXT|BUTTON_REL):
+            	if (current_brightness != MAX_BRIGHTNESS_SETTING) { rb->backlight_set_brightness(++current_brightness); } 
+		break;
 #endif /* LAMP_NEXT */
 #ifdef LAMP_PREV
             case (LAMP_PREV|BUTTON_REPEAT):
             case (LAMP_PREV|BUTTON_REL):
+            	if (current_brightness != MIN_BRIGHTNESS_SETTING) { rb->backlight_set_brightness(--current_brightness); } 
+		break;
 #endif /* LAMP_PREV */
                 /* eat these... */
                 break;    
