diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h
index 428d449a13580f23ce57e4c0581e7d7387f6aabe..1d19b7718d917cc1418671325d2af578e281a081 100644
--- a/Marlin/ultralcd_implementation_hitachi_HD44780.h
+++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h
@@ -321,9 +321,9 @@ static void lcd_implementation_drawmenu_setting_edit_generic(uint8_t row, const
char c;
//Use all characters in narrow LCDs
#if LCD_WIDTH < 20
- uint8_t n = LCD_WIDTH - 1 - 1;
+ uint8_t n = LCD_WIDTH - 1 - 1 - strlen(data);
#else
- uint8_t n = LCD_WIDTH - 1 - 2;
+ uint8_t n = LCD_WIDTH - 1 - 2 - strlen(data);
#endif
lcd.setCursor(0, row);
lcd.print(pre_char);
@@ -343,9 +343,9 @@ static void lcd_implementation_drawmenu_setting_edit_generic_P(uint8_t row, cons
char c;
//Use all characters in narrow LCDs
#if LCD_WIDTH < 20
- uint8_t n = LCD_WIDTH - 1 - 1;
+ uint8_t n = LCD_WIDTH - 1 - 1 - strlen_P(data);
#else
- uint8_t n = LCD_WIDTH - 1 - 2;
+ uint8_t n = LCD_WIDTH - 1 - 2 - strlen_P(data);
#endif
lcd.setCursor(0, row);
lcd.print(pre_char);