Index: trunk/FACT++/src/biasctrl.cc
===================================================================
--- trunk/FACT++/src/biasctrl.cc	(revision 12269)
+++ trunk/FACT++/src/biasctrl.cc	(revision 12270)
@@ -55,5 +55,5 @@
     int16_t fRampTime;
 
-    uint16_t fUpdateTime;
+    uint32_t fUpdateTime;
     uint16_t fSyncTime;
 
@@ -504,6 +504,6 @@
         case kResetChannels:
         case kCmdRead:
+            HandleReceivedData(fBuffer, bytes_received, command, send_counter);
             fWaitingForAnswer = false;
-            HandleReceivedData(fBuffer, bytes_received, command, send_counter);
             return;
 
@@ -620,4 +620,7 @@
 
         if (!is_open())
+            return;
+
+        if (fUpdateTime==0)
             return;
 
@@ -1310,5 +1313,5 @@
     // -------------------------------------------------------------------
 
-    void SetUpdateInterval(uint16_t val)
+    void SetUpdateInterval(uint32_t val)
     {
         fUpdateTime = val;
@@ -1689,8 +1692,8 @@
     int SetUpdateInterval(const EventImp &evt)
     {
-        if (!CheckEventSize(evt.GetSize(), "SetUpdateInterval", 2))
-            return false;
-
-        fBias.SetUpdateInterval(evt.Get<int16_t>()<0 ? 0 : evt.Get<int16_t>());
+        if (!CheckEventSize(evt.GetSize(), "SetUpdateInterval", 4))
+            return false;
+
+        fBias.SetUpdateInterval(evt.Get<int32_t>()<0 ? 0 : evt.Get<uint32_t>());
 
         return T::GetCurrentState();
@@ -1825,5 +1828,5 @@
 
 
-        T::AddEvent("SET_UPDATE_INTERVAL", "S:1")
+        T::AddEvent("SET_UPDATE_INTERVAL", "I:1")
             (bind(&StateMachineBias::SetUpdateInterval, this, placeholders::_1))
             ("Set the updat einterval how often the currents are requested"
@@ -1997,5 +2000,5 @@
         fBias.SetRampStep(step);
         fBias.SetRampTime(time);
-        fBias.SetUpdateInterval(conf.Get<uint16_t>("update-interval"));
+        fBias.SetUpdateInterval(conf.Get<uint32_t>("update-interval"));
         fBias.SetSyncDelay(conf.Get<uint16_t>("sync-delay"));
 
@@ -2076,5 +2079,5 @@
         ("ramp-time",       var<uint16_t>(15),   "Delay between the answer of one ramping step and sending the next ramp command to all channels in milliseconds.")
         ("ramp-step",       var<uint16_t>(46),   "Maximum step in DAC counts during ramping (Volt = DAC*90/4096)")
-        ("update-interval", var<uint16_t>(3000), "Interval between two current requests in milliseconds")
+        ("update-interval", var<uint32_t>(3000), "Interval between two current requests in milliseconds")
         ("sync-delay",      var<uint16_t>(500),  "Delay between sending the inital 0's after a newly established connection to synchronize the output stream in milliseconds")
         ("volt-max-abs",    var<float>(75),      "Absolte upper limit for the voltage (in Volts)")
