diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde
index e7102ea54d9db723dfda37f96db1a77bf29a1747..32e0b812d9ef32407f628ac6a4fdf34d7eaf7939 100644
--- a/Marlin/Marlin.pde
+++ b/Marlin/Marlin.pde
@@ -858,7 +858,18 @@ inline void process_commands()
       }
       else
       { 
-        finishAndDisableSteppers();
+        #if ((E_ENABLE_PIN != X_ENABLE_PIN) && (E_ENABLE_PIN != Y_ENABLE_PIN)) // Only enable on boards that have seperate ENABLE_PINS
+        if(code_seen('E')) {
+          st_synchronize()
+          LCD_MESSAGEPGM("Free Move");
+          disable_e();
+        }
+        else {
+          finishAndDisableSteppers();
+        }
+        #else
+          finishAndDisableSteppers();
+        #endif
       }
       break;
     case 85: // M85