diff --git a/Marlin/pins_3DRAG.h b/Marlin/pins_3DRAG.h
index 6f253ac8a3e1c869cd806ec8dc7eae9b0d095b0d..db19e5df2c2fc5ad22984f992ac0f310f866a0e2 100644
--- a/Marlin/pins_3DRAG.h
+++ b/Marlin/pins_3DRAG.h
@@ -86,7 +86,7 @@
   #undef BTN_ENC
   #define BTN_EN1 16
   #define BTN_EN2 17
-  #define BTN_ENC 23 //the click
+  #define BTN_ENC 23
 
 #else
 
diff --git a/Marlin/pins_CHEAPTRONIC.h b/Marlin/pins_CHEAPTRONIC.h
index 41e3dacb0eaf3d96a082bcf5e773c2c55cf27507..2fbb4e83564fd784f78d1ec2b2189e8e3b8591ea 100644
--- a/Marlin/pins_CHEAPTRONIC.h
+++ b/Marlin/pins_CHEAPTRONIC.h
@@ -84,8 +84,4 @@
 #define BTN_EN2 -1
 #define BTN_ENC -1
 
-#define BLEN_C 2
-#define BLEN_B 1
-#define BLEN_A 0
-
 // Cheaptronic v1.0 doesn't use this
diff --git a/Marlin/pins_ELEFU_3.h b/Marlin/pins_ELEFU_3.h
index 546b5a84e3a93b707fede935d1c8d41d9d1d93ee..2b8e64d8e5067503de5af8c94ff83765aacfbafa 100644
--- a/Marlin/pins_ELEFU_3.h
+++ b/Marlin/pins_ELEFU_3.h
@@ -87,11 +87,7 @@
 
   #define BTN_EN1          14
   #define BTN_EN2          39
-  #define BTN_ENC          15  //the click
-
-  #define BLEN_C            2
-  #define BLEN_B            1
-  #define BLEN_A            0
+  #define BTN_ENC          15
 
 #endif // RA_CONTROL_PANEL
 
diff --git a/Marlin/pins_FELIX2.h b/Marlin/pins_FELIX2.h
index dfea48358f531bc4b8a3cd2e54d770267a476664..7bb724bf53c4681eb7910279743cfbefc01613e6 100644
--- a/Marlin/pins_FELIX2.h
+++ b/Marlin/pins_FELIX2.h
@@ -38,9 +38,6 @@
 
 #if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL)
 
-  #define BLEN_C 2
-  #define BLEN_B 1
-  #define BLEN_A 0
   #define SD_DETECT_PIN 6
 
 #endif // NEWPANEL && ULTRA_LCD
diff --git a/Marlin/pins_GEN7_CUSTOM.h b/Marlin/pins_GEN7_CUSTOM.h
index f740e4a0128bca677146745606f64db95d22e731..06aaebd65e397771cdee12699d2108466646f059 100644
--- a/Marlin/pins_GEN7_CUSTOM.h
+++ b/Marlin/pins_GEN7_CUSTOM.h
@@ -86,5 +86,5 @@
 //buttons are directly attached
 #define BTN_EN1 11
 #define BTN_EN2 10
-#define BTN_ENC 12  //the click
+#define BTN_ENC 12
 
diff --git a/Marlin/pins_MEGACONTROLLER.h b/Marlin/pins_MEGACONTROLLER.h
index f21a805187bfbffd0900bf9a84d98d9f4bcf5d44..7ea4ee34b7611a941e076f8f4a3288d9c4332631 100644
--- a/Marlin/pins_MEGACONTROLLER.h
+++ b/Marlin/pins_MEGACONTROLLER.h
@@ -113,11 +113,11 @@
   //#define LCD_SCREEN_ROT_90
   //#define LCD_SCREEN_ROT_180
   //#define LCD_SCREEN_ROT_270
-  //The encoder and click button
+
   #define BTN_EN1 48
   #define BTN_EN2 11
-  #define BTN_ENC 10  //the click switch
-  //not connected to a pin
+  #define BTN_ENC 10
+
   #define SD_DETECT_PIN 49
-#endif //Minipanel
+#endif // MINIPANEL
 
diff --git a/Marlin/pins_MEGATRONICS.h b/Marlin/pins_MEGATRONICS.h
index 4e766d8b9854702819fbec7500530522a8f5d712..1b95f525fca4eeca6be2a53dc6abd6567c3af314 100644
--- a/Marlin/pins_MEGATRONICS.h
+++ b/Marlin/pins_MEGATRONICS.h
@@ -92,10 +92,6 @@
   #define BTN_EN2         64
   #define BTN_ENC         43
 
-  #define BLEN_C           2
-  #define BLEN_B           1
-  #define BLEN_A           0
-
   #define SD_DETECT_PIN   -1   // RAMPS doesn't use this
 
 #endif // ULTRA_LCD && NEWPANEL
diff --git a/Marlin/pins_MEGATRONICS_2.h b/Marlin/pins_MEGATRONICS_2.h
index 90e9b1feef755e098da7a2a2a9e64da56dc76ebf..991ab4a9cc04c8ff97f11f9e383445cc34c7c0d1 100644
--- a/Marlin/pins_MEGATRONICS_2.h
+++ b/Marlin/pins_MEGATRONICS_2.h
@@ -101,9 +101,4 @@
 // Buttons are directly attached using keypad
 #define BTN_EN1 61
 #define BTN_EN2 59
-#define BTN_ENC 43 //the click
-
-#define BLEN_C 2
-#define BLEN_B 1
-#define BLEN_A 0
-
+#define BTN_ENC 43
diff --git a/Marlin/pins_MEGATRONICS_3.h b/Marlin/pins_MEGATRONICS_3.h
index 93599781bf63ea16df242ce4fe95b61147a7899f..a983ee2a7d8405aaa8955353d614a4cbfedf61bb 100644
--- a/Marlin/pins_MEGATRONICS_3.h
+++ b/Marlin/pins_MEGATRONICS_3.h
@@ -28,7 +28,14 @@
   #error "Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
 #endif
 
-#define BOARD_NAME         "Megatronics v3.0"
+#define MEGATRONICS_31
+
+#if ENABLED(MEGATRONICS_31)
+  #define BOARD_NAME       "Megatronics v3.1"
+#else
+  #define BOARD_NAME       "Megatronics v3.0"
+#endif
+
 #define LARGE_FLASH        true
 
 #if ENABLED(Z_PROBE_SLED)
@@ -36,28 +43,28 @@
 #endif
 
 // Servo support
-#define SERVO0_PIN         46 //AUX3-6
-#define SERVO1_PIN         47 //AUX3-5
-#define SERVO2_PIN         48 //AUX3-4
-#define SERVO3_PIN         49 //AUX3-3
+#define SERVO0_PIN         46 // AUX3-6
+#define SERVO1_PIN         47 // AUX3-5
+#define SERVO2_PIN         48 // AUX3-4
+#define SERVO3_PIN         49 // AUX3-3
 
 #define X_STEP_PIN         58
 #define X_DIR_PIN          57
 #define X_ENABLE_PIN       59
 #define X_MIN_PIN          37
-#define X_MAX_PIN          40 // put to -1 to disable
+#define X_MAX_PIN          40
 
 #define Y_STEP_PIN         5
 #define Y_DIR_PIN          17
 #define Y_ENABLE_PIN       4
 #define Y_MIN_PIN          41
-#define Y_MAX_PIN          38 // put to -1 to disable
+#define Y_MAX_PIN          38
 
 #define Z_STEP_PIN         16
 #define Z_DIR_PIN          11
 #define Z_ENABLE_PIN       3
 #define Z_MIN_PIN          18
-#define Z_MAX_PIN          19 // put to -1 to disable
+#define Z_MAX_PIN          19
 
 #define E0_STEP_PIN        28
 #define E0_DIR_PIN         27
@@ -104,40 +111,37 @@
   #define TEMP_BED_PIN 14 // ANALOG NUMBERING
 #endif
 
+/**
+ * Controllers and LCDs
+ */
 #define BEEPER_PIN 61
 
-#if ENABLED(DOGLCD)
-
-  #if ENABLED(U8GLIB_ST7920)
-    #define LCD_PINS_RS     56 //CS chip select /SS chip slave select
-    #define LCD_PINS_ENABLE 51 //SID (MOSI)
-    #define LCD_PINS_D4     52 //SCK (CLK) clock
-    #define SD_DETECT_PIN 35
-  #endif
+#define BTN_EN1 44
+#define BTN_EN2 45
+#define BTN_ENC 33
 
+#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+  #define LCD_PINS_RS     56 // CS chip select / SS chip slave select
+  #define LCD_PINS_ENABLE 51 // SID (MOSI)
+  #define LCD_PINS_D4     52 // SCK (CLK) clock
+  #define SD_DETECT_PIN   35
 #else
-
-  #define LCD_PINS_RS 32
+  #define LCD_PINS_RS     32
   #define LCD_PINS_ENABLE 31
-  #define LCD_PINS_D4 14
-  #define LCD_PINS_D5 30
-  #define LCD_PINS_D6 39
-  #define LCD_PINS_D7 15
+  #define LCD_PINS_D4     14
+  #define LCD_PINS_D5     30
+  #define LCD_PINS_D6     39
+  #define LCD_PINS_D7     15
   
-  #define SHIFT_CLK 43
-  #define SHIFT_LD 35
-  #define SHIFT_OUT 34
-  #define SHIFT_EN 44
-
-  #define SD_DETECT_PIN 56 // Megatronics v3.1 only
+  #define SHIFT_CLK       43
+  #define SHIFT_LD        35
+  #define SHIFT_OUT       34
+  #define SHIFT_EN        44
+
+  #if ENABLED(MEGATRONICS_31)
+    #define SD_DETECT_PIN 56
+  #else
+    #define SD_DETECT_PIN -1
+  #endif
 
 #endif
-
-// Buttons are directly attached using keypad
-#define BTN_EN1 44
-#define BTN_EN2 45
-#define BTN_ENC 33
-
-#define BLEN_C 2
-#define BLEN_B 1
-#define BLEN_A 0
diff --git a/Marlin/pins_MINITRONICS.h b/Marlin/pins_MINITRONICS.h
index db68c97aecc4224353a069658846c495b37fcd7a..34faa9ad31a279316aeb63c0f0c57f7f49bb8b16 100644
--- a/Marlin/pins_MINITRONICS.h
+++ b/Marlin/pins_MINITRONICS.h
@@ -74,40 +74,36 @@
 #define HEATER_1_PIN   8 // EXTRUDER 2
 #define HEATER_BED_PIN 3 // BED
 
+/**
+ * Controllers and LCDs
+ */
 #define BEEPER_PIN -1
 
-#if ENABLED(DOGLCD)
+#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
 
-  #if ENABLED(U8GLIB_ST7920)
-    #define LCD_PINS_RS     15 //CS chip select /SS chip slave select
-    #define LCD_PINS_ENABLE 11 //SID (MOSI)
-    #define LCD_PINS_D4     10 //SCK (CLK) clock     
+  #define LCD_PINS_RS     15 // CS chip select /SS chip slave select
+  #define LCD_PINS_ENABLE 11 // SID (MOSI)
+  #define LCD_PINS_D4     10 // SCK (CLK) clock
 
-    #define BTN_EN1 18
-    #define BTN_EN2 17
-    #define BTN_ENC 25
+  #define BTN_EN1         18
+  #define BTN_EN2         17
+  #define BTN_ENC         25
 
-    #define SD_DETECT_PIN 30
-  #endif
+  #define SD_DETECT_PIN   30
 
 #else
 
-  #define LCD_PINS_RS -1
+  #define LCD_PINS_RS     -1
   #define LCD_PINS_ENABLE -1
-  #define LCD_PINS_D4 -1
-  #define LCD_PINS_D5 -1
-  #define LCD_PINS_D6 -1
-  #define LCD_PINS_D7 -1
+  #define LCD_PINS_D4     -1
+  #define LCD_PINS_D5     -1
+  #define LCD_PINS_D6     -1
+  #define LCD_PINS_D7     -1
 
   // Buttons are directly attached using keypad
-  #define BTN_EN1 -1
-  #define BTN_EN2 -1
-  #define BTN_ENC -1
-
-  #define BLEN_C 2
-  #define BLEN_B 1
-  #define BLEN_A 0
+  #define BTN_EN1         -1
+  #define BTN_EN2         -1
+  #define BTN_ENC         -1
 
   #define SD_DETECT_PIN -1  // Minitronics doesn't use this
-
 #endif
diff --git a/Marlin/pins_PRINTRBOARD.h b/Marlin/pins_PRINTRBOARD.h
index eaccabe9db2cd4f8876cc53e68eac19557023131..301548c4420a2f26dc66d34db856877a2bb012c3 100644
--- a/Marlin/pins_PRINTRBOARD.h
+++ b/Marlin/pins_PRINTRBOARD.h
@@ -132,7 +132,7 @@
   //The encoder and click button (FastIO Pins)
   #define BTN_EN1 26
   #define BTN_EN2 27
-  #define BTN_ENC 47  //the click switch
+  #define BTN_ENC 47
 
   #define SDSS 45
   #define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test)
diff --git a/Marlin/pins_PRINTRBOARD_REVF.h b/Marlin/pins_PRINTRBOARD_REVF.h
index d2a45623a22e1e3fa29ffd9816c4ecf24079c405..a289a5c4aa755180761486e46cba3fbe85442fe5 100644
--- a/Marlin/pins_PRINTRBOARD_REVF.h
+++ b/Marlin/pins_PRINTRBOARD_REVF.h
@@ -113,10 +113,6 @@
   #define BTN_EN2   17
   #define BTN_ENC   18//the click
 
-  #define BLEN_C 2
-  #define BLEN_B 1
-  #define BLEN_A 0
-
   #define SD_DETECT_PIN -1
 
   //encoder rotation values
@@ -136,7 +132,7 @@
   //The encoder and click button (FastIO Pins)
   #define BTN_EN1 26
   #define BTN_EN2 27
-  #define BTN_ENC 47  //the click switch
+  #define BTN_ENC 47
 
   #define SDSS 45
   #define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test)
diff --git a/Marlin/pins_RAMBO.h b/Marlin/pins_RAMBO.h
index 68c627b9084812fcc969cdcdc9a6b7e21b18d331..e04fbc529450a1b26af25a581f482b2b0c525567 100644
--- a/Marlin/pins_RAMBO.h
+++ b/Marlin/pins_RAMBO.h
@@ -127,11 +127,7 @@
     //buttons are directly attached using AUX-2
     #define BTN_EN1 76
     #define BTN_EN2 77
-    #define BTN_ENC 78  //the click
-
-    #define BLEN_C 2
-    #define BLEN_B 1
-    #define BLEN_A 0
+    #define BTN_ENC 78
 
     #define SD_DETECT_PIN 81 // Ramps doesn't use this
 
@@ -154,17 +150,6 @@
     #define LCD_PINS_D6 27
     #define LCD_PINS_D7 29
 
-    //bits in the shift register that carry the buttons for:
-    // left up center down right red
-    #define BL_LE 7
-    #define BL_UP 6
-    #define BL_MI 5
-    #define BL_DW 4
-    #define BL_RI 3
-    #define BL_ST 2
-    #define BLEN_B 1
-    #define BLEN_A 0
-
   #endif // !NEWPANEL
 
 #endif // ULTRA_LCD
@@ -179,7 +164,7 @@
   //The encoder and click button
   #define BTN_EN1 85
   #define BTN_EN2 84
-  #define BTN_ENC 83  //the click switch
+  #define BTN_ENC 83
 
   #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board
 
diff --git a/Marlin/pins_RAMPS_14.h b/Marlin/pins_RAMPS_14.h
index ef96f59a60e39ec705d4837f2d2d8ff8ad0073e5..b1c5b1953926e786c8e68fab51b35f31c309ab30 100644
--- a/Marlin/pins_RAMPS_14.h
+++ b/Marlin/pins_RAMPS_14.h
@@ -256,7 +256,7 @@
       //The encoder and click button
       #define BTN_EN1 40
       #define BTN_EN2 63
-      #define BTN_ENC 59  //the click switch
+      #define BTN_ENC 59
       //not connected to a pin
       #define SD_DETECT_PIN 49
 
diff --git a/Marlin/pins_ULTIMAIN_2.h b/Marlin/pins_ULTIMAIN_2.h
index c348ebb4902c0169087a5ac9750961c9b8627e18..c2de0a426a10c9c75a2215d869c777eb43f2e70b 100644
--- a/Marlin/pins_ULTIMAIN_2.h
+++ b/Marlin/pins_ULTIMAIN_2.h
@@ -89,10 +89,6 @@
 //buttons are directly attached
 #define BTN_EN1 40
 #define BTN_EN2 41
-#define BTN_ENC 19  //the click
-
-#define BLEN_C 2
-#define BLEN_B 1
-#define BLEN_A 0
+#define BTN_ENC 19
 
 #define SD_DETECT_PIN 39
diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h
index 457a70f513dcc158a553c47437cb27c73f483d1a..b1d4300c04ebb91474558dbe13efdc8a4aa9720f 100644
--- a/Marlin/ultralcd.h
+++ b/Marlin/ultralcd.h
@@ -58,7 +58,6 @@
     void bootscreen();
   #endif
 
-
   #define LCD_MESSAGEPGM(x) lcd_setstatuspgm(PSTR(x))
   #define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x))
 
@@ -93,7 +92,20 @@
 
   bool lcd_blink();
 
-  #if ENABLED(REPRAPWORLD_KEYPAD)
+  #if ENABLED(ULTIPANEL)
+    #define BLEN_A 0
+    #define BLEN_B 1
+    // Encoder click is directly connected
+    #if BUTTON_EXISTS(ENC)
+      #define BLEN_C 2
+      #define EN_C (_BV(BLEN_C))
+    #endif
+    #define EN_A (_BV(BLEN_A))
+    #define EN_B (_BV(BLEN_B))
+    #define EN_C (_BV(BLEN_C))
+  #endif
+
+  #if ENABLED(REPRAPWORLD_KEYPAD) // is also ULTIPANEL and NEWPANEL
 
     #define REPRAPWORLD_BTN_OFFSET 0 // bit offset into buttons for shift register values
 
@@ -135,35 +147,10 @@
                                               EN_REPRAPWORLD_KEYPAD_LEFT) \
                                             )
 
-  #endif // REPRAPWORLD_KEYPAD
-
-  #if ENABLED(NEWPANEL)
-
-    #define EN_C (_BV(BLEN_C))
-    #define EN_B (_BV(BLEN_B))
-    #define EN_A (_BV(BLEN_A))
-
-    #if ENABLED(REPRAPWORLD_KEYPAD)
-      #define LCD_CLICKED ((buttons&EN_C) || (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F1))
-    #else
-      #define LCD_CLICKED (buttons&EN_C)
-    #endif
-
-  #else //!NEWPANEL
-
-    //atomic, do not change
-    #define B_LE (_BV(BL_LE))
-    #define B_UP (_BV(BL_UP))
-    #define B_MI (_BV(BL_MI))
-    #define B_DW (_BV(BL_DW))
-    #define B_RI (_BV(BL_RI))
-    #define B_ST (_BV(BL_ST))
-    #define EN_B (_BV(BLEN_B))
-    #define EN_A (_BV(BLEN_A))
-
-    #define LCD_CLICKED ((buttons&B_MI)||(buttons&B_ST))
-
-  #endif //!NEWPANEL
+    #define LCD_CLICKED ((buttons & EN_C) || (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_F1))
+  #elif ENABLED(NEWPANEL)
+    #define LCD_CLICKED (buttons & EN_C)
+  #endif
 
 #else //no LCD
   FORCE_INLINE void lcd_update() {}
diff --git a/Marlin/ultralcd_impl_DOGM.h b/Marlin/ultralcd_impl_DOGM.h
index 43b76a9957117573b1d3c22c0c46ee4b0c52fba9..f8ffd4db00208fc8ef4ab314f460191ce48cd053 100644
--- a/Marlin/ultralcd_impl_DOGM.h
+++ b/Marlin/ultralcd_impl_DOGM.h
@@ -42,20 +42,9 @@
  * Implementation of the LCD display routines for a DOGM128 graphic display.
  * These are common LCD 128x64 pixel graphic displays.
  */
-
-#if ENABLED(ULTIPANEL)
-  #define BLEN_A 0
-  #define BLEN_B 1
-  #define BLEN_C 2
-  #define EN_A (_BV(BLEN_A))
-  #define EN_B (_BV(BLEN_B))
-  #define EN_C (_BV(BLEN_C))
-  #define LCD_CLICKED (buttons&EN_C)
-#endif
-
-#include "dogm_bitmaps.h"
 #include "ultralcd.h"
 #include "ultralcd_st7920_u8glib_rrd.h"
+#include "dogm_bitmaps.h"
 #include "duration_t.h"
 
 #include <U8glib.h>
diff --git a/Marlin/ultralcd_impl_HD44780.h b/Marlin/ultralcd_impl_HD44780.h
index fa942d8a182a242bee60bde0fb3680500c0466d8..ab120c2cae33b515d428ac3a2f8cff55fd1b5316 100644
--- a/Marlin/ultralcd_impl_HD44780.h
+++ b/Marlin/ultralcd_impl_HD44780.h
@@ -39,18 +39,6 @@ extern volatile uint8_t buttons;  //an extended version of the last checked butt
 // via a shift/i2c register.
 
 #if ENABLED(ULTIPANEL)
-  // All UltiPanels might have an encoder - so this is always be mapped onto first two bits
-  #define BLEN_B 1
-  #define BLEN_A 0
-
-  #define EN_B (_BV(BLEN_B)) // The two encoder pins are connected through BTN_EN1 and BTN_EN2
-  #define EN_A (_BV(BLEN_A))
-
-  #if BUTTON_EXISTS(ENC)
-    // encoder click is directly connected
-    #define BLEN_C 2
-    #define EN_C (_BV(BLEN_C))
-  #endif
 
   //
   // Setup other button mappings of each panel
@@ -80,51 +68,35 @@ extern volatile uint8_t buttons;  //an extended version of the last checked butt
 
   #elif ENABLED(LCD_I2C_PANELOLU2)
 
-    #if BUTTON_EXISTS(ENC)
-
-      #undef LCD_CLICKED
-      #define LCD_CLICKED (buttons&EN_C)
-
-    #else // Read through I2C if not directly connected to a pin
+    #if !BUTTON_EXISTS(ENC) // Use I2C if not directly connected to a pin
 
       #define B_I2C_BTN_OFFSET 3 // (the first three bit positions reserved for EN_A, EN_B, EN_C)
 
       #define B_MI (PANELOLU2_ENCODER_C<<B_I2C_BTN_OFFSET) // requires LiquidTWI2 library v1.2.3 or later
 
       #undef LCD_CLICKED
-      #define LCD_CLICKED (buttons&B_MI)
+      #define LCD_CLICKED (buttons & B_MI)
 
       // I2C buttons take too long to read inside an interrupt context and so we read them during lcd_update
       #define LCD_HAS_SLOW_BUTTONS
 
     #endif
 
-  #elif ENABLED(REPRAPWORLD_KEYPAD)
-
-    // REPRAPWORLD_KEYPAD defined in ultralcd.h
-
-  #elif ENABLED(NEWPANEL)
-    #define LCD_CLICKED (buttons&EN_C)
-
-  #else // old style ULTIPANEL
-    //bits in the shift register that carry the buttons for:
-    // left up center down right red(stop)
-    #define BL_LE 7
-    #define BL_UP 6
-    #define BL_MI 5
-    #define BL_DW 4
-    #define BL_RI 3
-    #define BL_ST 2
-
-    //automatic, do not change
+  #elif DISABLED(NEWPANEL) // old style ULTIPANEL
+    // Shift register bits correspond to buttons:
+    #define BL_LE 7   // Left
+    #define BL_UP 6   // Up
+    #define BL_MI 5   // Middle
+    #define BL_DW 4   // Down
+    #define BL_RI 3   // Right
+    #define BL_ST 2   // Red Button
     #define B_LE (_BV(BL_LE))
     #define B_UP (_BV(BL_UP))
     #define B_MI (_BV(BL_MI))
     #define B_DW (_BV(BL_DW))
     #define B_RI (_BV(BL_RI))
     #define B_ST (_BV(BL_ST))
-
-    #define LCD_CLICKED (buttons&(B_MI|B_ST))
+    #define LCD_CLICKED ((buttons & B_MI) || (buttons & B_ST))
   #endif
 
 #endif //ULTIPANEL