diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp
index 2aca7d9c11e44ff20609b20fe2b7a2fc10aab45c..21ffdc1fe98994f6c225697b11de0da96436a0a5 100755
--- a/Marlin/ultralcd.cpp
+++ b/Marlin/ultralcd.cpp
@@ -223,7 +223,7 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
     ENCODER_DIRECTION_MENUS(); \
     encoderRateMultiplierEnabled = false; \
     if (encoderPosition > 0x8000) encoderPosition = 0; \
-    uint8_t encoderLine = encoderPosition / ENCODER_STEPS_PER_MENU_ITEM; \
+    int8_t encoderLine = encoderPosition / ENCODER_STEPS_PER_MENU_ITEM; \
     NOMORE(encoderTopLine, encoderLine); \
     uint8_t _lineNr = encoderTopLine, _menuItemNr; \
     CODE; \