diff --git a/Marlin/src/lcd/ultralcd_impl_DOGM.h b/Marlin/src/lcd/ultralcd_impl_DOGM.h
index c1b868c55cb252d10797b3d016c7b9e0541cbdc1..1ece678fade7f1e564f10355c0550de266b65521 100644
--- a/Marlin/src/lcd/ultralcd_impl_DOGM.h
+++ b/Marlin/src/lcd/ultralcd_impl_DOGM.h
@@ -278,6 +278,8 @@ void lcd_printPGM_utf(const char *str, uint8_t n=LCD_WIDTH) {
#if ENABLED(SHOW_BOOTSCREEN)
+ bool show_bootscreen = true;
+
#if ENABLED(SHOW_CUSTOM_BOOTSCREEN)
void lcd_custom_bootscreen() {
@@ -294,8 +296,6 @@ void lcd_printPGM_utf(const char *str, uint8_t n=LCD_WIDTH) {
void lcd_bootscreen() {
- static bool show_bootscreen = true;
-
if (show_bootscreen) {
show_bootscreen = false;
@@ -353,11 +353,13 @@ static void lcd_implementation_init() {
#endif
#if ENABLED(SHOW_BOOTSCREEN)
- #if ENABLED(SHOW_CUSTOM_BOOTSCREEN)
- lcd_custom_bootscreen();
- #else
- lcd_bootscreen();
- #endif
+ if (show_bootscreen) {
+ #if ENABLED(SHOW_CUSTOM_BOOTSCREEN)
+ lcd_custom_bootscreen();
+ #else
+ lcd_bootscreen();
+ #endif
+ }
#endif
}