diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index 0772cb324f..8ea8ee008f 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -156,12 +156,13 @@ void manage_heater()
             pTerm+=Kc*current_block->speed_e; //additional heating if extrusion speed is high
           #endif
           pid_output = constrain(pTerm + iTerm - dTerm, 0, PID_MAX);
-          HeaterPower=pid_output;
+          
         }
     #endif //PID_OPENLOOP
     #ifdef PID_DEBUG
      //SERIAL_ECHOLN(" PIDDEBUG Input "<<pid_input<<" Output "<<pid_output" pTerm "<<pTerm<<" iTerm "<<iTerm<<" dTerm "<<dTerm);  
     #endif //PID_DEBUG
+    HeaterPower=pid_output;
     analogWrite(HEATER_0_PIN, pid_output);
   #endif //PIDTEMP
 
@@ -250,7 +251,7 @@ int temp2analogBed(int celsius) {
 
     return (1023 * OVERSAMPLENR) - raw;
   #elif defined BED_USES_AD595
-    return celsius * (1024.0 / (5.0 * 100.0) ) * OVERSAMPLENR;
+    return lround(celsius * (1024.0 * OVERSAMPLENR/ (5.0 * 100.0) ) );
   #endif
 }