diff --git a/Marlin/src/HAL/HAL_LPC1768/DebugMonitor.cpp b/Marlin/src/HAL/HAL_LPC1768/DebugMonitor.cpp
index fefee386e590428a96dcefe0037dfce692798aed..bd6c59bcb72606526cd4a3a0a32db0e5dda27403 100644
--- a/Marlin/src/HAL/HAL_LPC1768/DebugMonitor.cpp
+++ b/Marlin/src/HAL/HAL_LPC1768/DebugMonitor.cpp
@@ -199,14 +199,23 @@ void HardFault_HandlerC(unsigned long *sp, unsigned long lr, unsigned long cause
 
   // Clear cause of reset to prevent entering smoothie bootstrap
   HAL_clear_reset_source();
+
   // Restart watchdog
-  //WDT_Restart(WDT);
-  watchdog_init();
+  #if ENABLED(USE_WATCHDOG)
+    //WDT_Restart(WDT);
+    watchdog_init();
+  #endif
 
   // Reset controller
   NVIC_SystemReset();
 
-  for (;;) watchdog_init();
+  // Nothing below here is compiled because NVIC_SystemReset loops forever
+
+  for (;;) {
+    #if ENABLED(USE_WATCHDOG)
+      watchdog_init();
+    #endif
+  }
 }
 
 extern "C" {