Index: apps/plugin.c
===================================================================
RCS file: /cvsroot/rockbox/apps/plugin.c,v
retrieving revision 1.166
diff -u -r1.166 plugin.c
--- apps/plugin.c	3 Apr 2006 08:51:08 -0000	1.166
+++ apps/plugin.c	6 Apr 2006 07:42:38 -0000
@@ -517,7 +517,9 @@
     }
     plugin_size = hdr->end_addr - pluginbuf;
 #endif
-
+    /* Set backlight to be on all the time */
+    if (global_settings.backlight_timeout_plugin)
+        backlight_set_timeout(1);
     plugin_loaded = true;
 
 #ifdef HAVE_LCD_BITMAP
@@ -592,6 +594,8 @@
             gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_ERROR));
             break;
     }
+    /* Set backlight timeout back to user setting */
+    backlight_set_timeout(global_settings.backlight_timeout);
     action_signalscreenchange();
     return PLUGIN_OK;
 }
Index: apps/settings.c
===================================================================
RCS file: /cvsroot/rockbox/apps/settings.c,v
retrieving revision 1.378
diff -u -r1.378 settings.c
--- apps/settings.c	2 Apr 2006 12:23:08 -0000	1.378
+++ apps/settings.c	6 Apr 2006 07:42:38 -0000
@@ -325,6 +325,7 @@
 
     /* Current sum of bits: 277 (worst case, but w/o remote lcd) */
     /* Sum of all bit sizes must not grow beyond 288! */
+    {1, S_O(backlight_timeout_plugin), false, "backlight timeout plugin", off_on },
 };
 
 
Index: apps/settings.h
===================================================================
RCS file: /cvsroot/rockbox/apps/settings.h,v
retrieving revision 1.215
diff -u -r1.215 settings.h
--- apps/settings.h	2 Apr 2006 12:23:08 -0000	1.215
+++ apps/settings.h	6 Apr 2006 07:42:38 -0000
@@ -271,6 +271,7 @@
                                1=always,
                                then according to timeout_values[] */
     int backlight_timeout_plugged;
+    bool backlight_timeout_plugin; /* backlight on while in plugin */
 #ifdef HAVE_BACKLIGHT_PWM_FADING
     int backlight_fade_in;  /* backlight fade in timing: 0..3 */
     int backlight_fade_out; /* backlight fade in timing: 0..7 */
Index: apps/settings_menu.c
===================================================================
RCS file: /cvsroot/rockbox/apps/settings_menu.c,v
retrieving revision 1.251
diff -u -r1.251 settings_menu.c
--- apps/settings_menu.c	5 Apr 2006 22:36:42 -0000	1.251
+++ apps/settings_menu.c	6 Apr 2006 07:42:38 -0000
@@ -191,6 +191,13 @@
                       backlight_set_timeout );
 }
 
+static bool backlight_timer_plugin(void)
+{
+    bool rc = set_bool( str(LANG_BACKLIGHT_ON_WHEN_PLUGIN),
+                        &global_settings.backlight_timeout_plugin);
+    return rc;
+}
+
 #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
 static bool backlight_fade_in(void)
 {
@@ -1681,6 +1688,7 @@
 #ifdef HAVE_CHARGING
         { ID2P(LANG_BACKLIGHT_ON_WHEN_CHARGING), backlight_timer_plugged },
 #endif
+        { ID2P(LANG_BACKLIGHT_ON_WHEN_PLUGIN), backlight_timer_plugin },
         { ID2P(LANG_CAPTION_BACKLIGHT), caption_backlight },
 #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
         { ID2P(LANG_BACKLIGHT_FADE_IN), backlight_fade_in },
Index: apps/lang/english.lang
===================================================================
RCS file: /cvsroot/rockbox/apps/lang/english.lang,v
retrieving revision 1.245
diff -u -r1.245 english.lang
--- apps/lang/english.lang	5 Apr 2006 21:08:29 -0000	1.245
+++ apps/lang/english.lang	6 Apr 2006 07:47:45 -0000
@@ -3145,6 +3145,20 @@
     *: "Backlight Fade Out"
   </voice>
 </phrase>
+ <phrase>
+  id: LANG_BACKLIGHT_ON_WHEN_PLUGIN
+  desc: in display_settings_menu, backlight timeout when running plugins
+  user:
+  <source>
+    *: "Backlight (While in Plugin)"
+  </source>
+  <dest>
+    *: "Backlight (While in Plugin)"
+  </dest>
+  <voice>
+    *: "Backlight (While in Plugin)"
+  </voice>
+ </phrase>
 <phrase>
   id: LANG_BRIGHTNESS
   desc: in settings_menu
