diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde
index 185c9f78177d9479cc979546ecc02b16ba38904d..e450f74183f004435edb831a0ab47e656f788a5c 100644
--- a/Marlin/Marlin.pde
+++ b/Marlin/Marlin.pde
@@ -56,6 +56,8 @@
 // G92 - Set current position to cordinates given
 
 //RepRap M Codes
+// M0   - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
+// M1   - Same as M0
 // M104 - Set extruder target temp
 // M105 - Read current temp
 // M106 - Fan on
@@ -107,7 +109,6 @@
 // M302 - Allow cold extrudes
 // M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
 // M400 - Finish all moves
-// M401 - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
 // M500 - stores paramters in EEPROM
 // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).  
 // M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
@@ -709,6 +710,35 @@ void process_commands()
   {
     switch( (int)code_value() ) 
     {
+#ifdef ULTRA_LCD
+    case 0: // M0 - Unconditional stop - Wait for user button press on LCD
+    case 1: // M1 - Conditional stop - Wait for user button press on LCD
+    {
+      LCD_MESSAGEPGM(MSG_USERWAIT);
+      codenum = 0;
+      if(code_seen('P')) codenum = code_value(); // milliseconds to wait
+      if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait
+      
+      st_synchronize();
+      previous_millis_cmd = millis();
+	  if (codenum > 0)
+	  {
+        codenum += millis();  // keep track of when we started waiting
+        while(millis()  < codenum && !CLICKED){
+          manage_heater();
+          manage_inactivity(1);
+		  LCD_STATUS;
+		}
+      }else{
+        while(!CLICKED) {
+          manage_heater();
+          manage_inactivity(1);
+		  LCD_STATUS;
+		}
+	  }
+    }
+    break;
+#endif
     case 17:
         LCD_MESSAGEPGM(MSG_NO_MOVE);
         enable_x(); 
@@ -1266,34 +1296,6 @@ void process_commands()
       st_synchronize();
     }
     break;
-#ifdef ULTRA_LCD
-    case 401: // M401 - Wait for user button press on LCD
-    {
-      LCD_MESSAGEPGM(MSG_USERWAIT);
-      codenum = 0;
-      if(code_seen('P')) codenum = code_value(); // milliseconds to wait
-      if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait
-      
-      st_synchronize();
-      previous_millis_cmd = millis();
-	  if (codenum > 0)
-	  {
-        codenum += millis();  // keep track of when we started waiting
-        while(millis()  < codenum && !CLICKED){
-          manage_heater();
-          manage_inactivity(1);
-		  LCD_STATUS;
-		}
-      }else{
-        while(!CLICKED) {
-          manage_heater();
-          manage_inactivity(1);
-		  LCD_STATUS;
-		}
-	  }
-    }
-    break;
-#endif
     case 500: // Store settings in EEPROM
     {
         EEPROM_StoreSettings();