Index: trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- trunk/FACT++/src/EventBuilderWrapper.h	(revision 15606)
+++ trunk/FACT++/src/EventBuilderWrapper.h	(revision 15610)
@@ -112,4 +112,5 @@
     Queue<tuple<Time,bool,FAD::EventHeader>> fDimQueue2;
     Queue<pair<Time,array<uint32_t,4>>> fDimQueue3;
+    Queue<pair<Time,array<uint16_t,2>>> fDimQueue4;
     
     bool fDebugStream;
@@ -271,4 +272,5 @@
         fDimQueue2(std::bind(&EventBuilderWrapper::procHeader, this, placeholders::_1)),
         fDimQueue3(std::bind(&EventBuilderWrapper::updateEvents, this, placeholders::_1)),
+        fDimQueue4(std::bind(&EventBuilderWrapper::updateRoi, this, placeholders::_1)),
         fDebugStream(false), fDebugRead(false), fDebugLog(false), fNightAsInt(0)
     {
@@ -421,5 +423,5 @@
     {
         fMsg.Message("Signal abort to EventBuilder thread...");
-        g_runStat = kAbort;
+        g_reset = 1;
     }
 
@@ -903,4 +905,10 @@
     array<uint16_t,2> fVecRoi;
 
+    void updateRoi(const pair<Time, array<uint16_t,2>> &roi)
+    {
+        fDimRoi.setData(roi.second.data(), sizeof(uint16_t)*2);
+        fDimRoi.Update(roi.first);
+    }
+
     int eventCheck(uint32_t runNr, PEVNT_HEADER *fadhd, EVENT *event, int /*iboard*/)
     {
@@ -920,6 +928,6 @@
 
 	if (roi!=fVecRoi)
-	{
-	    Update(fDimRoi, roi);
+        {
+            fDimQueue4.post(make_pair(Time(), roi));
 	    fVecRoi = roi;
 	}
