Index: /trunk/FACT++/src/feedback.cc
===================================================================
--- /trunk/FACT++/src/feedback.cc	(revision 14351)
+++ /trunk/FACT++/src/feedback.cc	(revision 14352)
@@ -266,12 +266,18 @@
         fDimDeviation.Update(vec);
 
-        if (!fOutputEnabled || fDimBias.state()!=BIAS::State::kVoltageOn)
-            return GetCurrentState();
-
-        // Trigger calibration
-        if (GetCurrentState()==Feedback::State::kCalibrating && fCursorTemp==2)
-        {
-            DimClient::sendCommandNB("BIAS_CONTROL/REQUEST_STATUS", NULL, 0);
-            return GetCurrentState();
+        // Warning: Here it is assumed that the ramp up and down is done properly
+        // within the time between two new temperatures and that the calibration
+        // is finished within that time.
+        if (!(GetCurrentState()==Feedback::State::kCalibrating && fCursorTemp==1 && fOutputEnabled && fDimBias.state()==BIAS::State::kVoltageOff))
+        {
+            if (!fOutputEnabled || fDimBias.state()!=BIAS::State::kVoltageOn)
+                return GetCurrentState();
+
+            // Trigger calibration
+            if (GetCurrentState()==Feedback::State::kCalibrating && fCursorTemp==2)
+            {
+                DimClient::sendCommandNB("BIAS_CONTROL/REQUEST_STATUS", NULL, 0);
+                return GetCurrentState();
+            }
         }
 
@@ -1217,4 +1223,6 @@
         Subscribe("BIAS_CONTROL/FEEDBACK_DATA")
             (bind(&StateMachineFeedback::HandleBiasData,    this, placeholders::_1));
+        Subscribe("BIAS_CONTROL/NOMINAL")
+            (bind(&StateMachineFeedback::HandleBiasNom,     this, placeholders::_1));
         Subscribe("FSC_CONTROL/TEMPERATURE")
             (bind(&StateMachineFeedback::HandleCameraTemp,  this, placeholders::_1));
