diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde
index 8ac4b3bdd02afa060e69bc0b20009e5c50c92619..0814f1f9e656658351d9987a1b0e03460298bc9b 100644
--- a/Marlin/Marlin.pde
+++ b/Marlin/Marlin.pde
@@ -33,7 +33,7 @@
 #include "Marlin.h"
 #include "speed_lookuptable.h"
 
-char version_string[] = "0.9.0";
+char version_string[] = "0.9.1";
 
 #ifdef SDSUPPORT
 #include "SdFat.h"
@@ -783,7 +783,12 @@ inline void process_commands()
       return;
       //break;
     case 109: // M109 - Wait for extruder heater to reach target.
-      if (code_seen('S')) target_raw = temp2analogh(code_value());
+      if (code_seen('S')) {
+        target_raw = temp2analogh(code_value());
+#ifdef PIDTEMP
+        pid_setpoint = code_value();
+#endif //PIDTEMP
+      }
 #ifdef WATCHPERIOD
       if(target_raw>current_raw){
         watchmillis = max(1,millis());