Index: firmware/backlight.c =================================================================== --- firmware/backlight.c (revision 20774) +++ firmware/backlight.c (working copy) @@ -658,7 +658,8 @@ break; #ifdef HAVE_LCD_SLEEP case LCD_SLEEP: - lcd_sleep(); + if (!is_backlight_on(false)) + lcd_sleep(); break; #endif #ifdef HAVE_BUTTON_LIGHT Index: firmware/target/arm/ipod/backlight-nano_video.c =================================================================== --- firmware/target/arm/ipod/backlight-nano_video.c (revision 20772) +++ firmware/target/arm/ipod/backlight-nano_video.c (working copy) @@ -73,20 +73,14 @@ void _backlight_hw_enable(bool on) { -#ifdef HAVE_LCD_SLEEP - if (on) - /* If the fade-out is interrupted, enabled will be true, but - lcd_awake() needs to be called anyways because the LCD - may be sleeping. - */ - lcd_awake(); -#endif - if (on == enabled) return; if (on) { +#ifdef HAVE_LCD_SLEEP + lcd_awake(); +#endif GPIO_SET_BITWISE(GPIOB_OUTPUT_VAL, 0x08); GPIO_SET_BITWISE(GPIOD_OUTPUT_VAL, 0x80); sleep(HZ/100);