diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp
index e4269579fd3b6cce242d81fd85017a406cf47944..dc0b5cf4ca5a92b5633646c947cd4e5155bd9a51 100644
--- a/Marlin/src/gcode/bedlevel/abl/G29.cpp
+++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp
@@ -260,7 +260,8 @@ void GcodeSuite::G29() {
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
- if (parser.seen('W')) {
+ const bool seen_w = parser.seen('W');
+ if (seen_w) {
if (!leveling_is_valid()) {
SERIAL_ERROR_START();
SERIAL_ERRORLNPGM("No bilinear grid");
@@ -298,10 +299,14 @@ void GcodeSuite::G29() {
return;
} // parser.seen('W')
+ #else
+
+ constexpr bool seen_w = false;
+
#endif
// Jettison bed leveling data
- if (parser.seen('J')) {
+ if (!seen_w && parser.seen('J')) {
reset_bed_level();
return;
}