Index: apps/lang/english.lang
===================================================================
--- apps/lang/english.lang.orig
+++ apps/lang/english.lang
@@ -3162,6 +3162,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
Index: apps/settings.h
===================================================================
--- apps/settings.h.orig
+++ apps/settings.h
@@ -390,6 +390,7 @@ struct user_settings
                                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_list.c
===================================================================
--- apps/settings_list.c.orig
+++ apps/settings_list.c
@@ -1054,6 +1054,7 @@ const struct settings_list settings[] = 
     {F_T_INT,&global_settings.rec_trigger_type,LANG_RECORD_TRIGGER_TYPE,
         INT(0),"trigger type","stop,pause,nf stp",UNUSED},
 #endif
+    OFFON_SETTING(0,backlight_timeout_plugin, LANG_BACKLIGHT_ON_WHEN_PLUGIN,false,"backlight timeout plugin",NULL),
 
     /** settings not in the old config blocks **/
 #if CONFIG_TUNER
Index: apps/plugin.c
===================================================================
--- apps/plugin.c.orig
+++ apps/plugin.c
@@ -584,7 +584,9 @@ int plugin_load(const char* plugin, void
     /* zero out bss area only, above guards end of pluginbuf */
     memset(pluginbuf + readsize, 0, plugin_size - readsize);
 #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
@@ -665,6 +667,8 @@ int plugin_load(const char* plugin, void
             gui_syncsplash(HZ*2, true, str(LANG_PLUGIN_ERROR));
             break;
     }
+    /* Set backlight timeout back to user setting */
+    backlight_set_timeout(global_settings.backlight_timeout);
     return PLUGIN_OK;
 }
 
Index: apps/menus/display_menu.c
===================================================================
--- apps/menus/display_menu.c.orig
+++ apps/menus/display_menu.c
@@ -87,6 +87,10 @@ MENUITEM_SETTING(backlight_timeout_plugg
 MENUITEM_SETTING(backlight_on_button_hold, 
                 &global_settings.backlight_on_button_hold, NULL);
 #endif
+
+MENUITEM_SETTING(backlight_timeout_plugin, 
+        &global_settings.backlight_timeout_plugin, NULL);
+
 MENUITEM_SETTING(caption_backlight, &global_settings.caption_backlight, NULL);
 #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
 MENUITEM_SETTING(backlight_fade_in, &global_settings.backlight_fade_in, NULL);
@@ -180,6 +184,7 @@ MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MEN
 # ifdef HAS_BUTTON_HOLD
             ,&backlight_on_button_hold
 # endif
+            ,&backlight_timeout_plugin
             ,&caption_backlight
 # if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
             ,&backlight_fade_in, &backlight_fade_out
