Index: /trunk/FACT++/src/biasctrl.cc
===================================================================
--- /trunk/FACT++/src/biasctrl.cc	(revision 13188)
+++ /trunk/FACT++/src/biasctrl.cc	(revision 13189)
@@ -664,11 +664,4 @@
         fSendCounter += kNumChannels;
 
-        if (fWaitingForAnswer>=0)
-        {
-            ostringstream msg;
-            msg << "SetAllChannels while waiting for answer to last command (id=" << fWaitingForAnswer << ")";
-            Warn(msg);
-        }
-
         PostMessage(data);
         AsyncRead(ba::buffer(special ? fBuffer : fBufferRamp, kNumChannels*3),
@@ -714,9 +707,22 @@
 
         if (identical)
+        {
             Info("Ramping: target values reached.");
-        else
+            return false;
+        }
+
+        if (fWaitingForAnswer<0)
+        {
             SetAllChannels(dac);
-
-        return !identical;
+            return true;
+        }
+
+        ostringstream msg;
+        msg << "RampOneStep while waiting for answer to last command (id=" << fWaitingForAnswer << ")... ramp step delayed.";
+        Warn(msg);
+
+        // Delay ramping
+        ScheduleRampStep();
+        return true;
     }
 
@@ -737,4 +743,5 @@
 
             PostClose(false);
+            fIsRamping = false;
             return;
         }
@@ -743,4 +750,5 @@
         {
             Warn("Ramping in progress, but disconnected.");
+            fIsRamping = false;
             return;
         }
