diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp
index 9a19104d71138c7f3000dd30bb1475653a277fcc..a248a1f94b00aaf854af788a73ed637eb13ffbc8 100644
--- a/Marlin/src/lcd/ultralcd.cpp
+++ b/Marlin/src/lcd/ultralcd.cpp
@@ -212,7 +212,7 @@ uint16_t max_display_update_time = 0;
   void _menu_action_back();
   void menu_action_submenu(screenFunc_t data);
   void menu_action_gcode(const char* pgcode);
-  void menu_action_function(screenFunc_t data);
+  void menu_action_function(menuAction_t data);
 
   #define DECLARE_MENU_EDIT_TYPE(_type, _name) \
     bool _menu_edit_ ## _name(); \
diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h
index db17e6284fe9cc6e37969a1bd5dd8d00d8b58b8e..16b3998171a00239dccae0368334294789738a15 100644
--- a/Marlin/src/lcd/ultralcd.h
+++ b/Marlin/src/lcd/ultralcd.h
@@ -84,6 +84,7 @@
 
     // Function pointer to menu functions.
     typedef void (*screenFunc_t)();
+    typedef void (*menuAction_t)();
 
     void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder=0);