}
 
 void HwTip_requestBuffer(HwTip *my) {
-  LVme_clrBitL(my->lvme, EXT_DAQ, my->daqRq);
+
+  do {
+    LVme_clrBitL(my->lvme, EXT_DAQ, my->daqRq);
+  } while(LVme_tstBitL(my->lvme, EXT_DAQ, my->daqRq));
+
   while (LVme_tstBitL(my->lvme, EXT_STATUS, my->daqGr)) {
 #if 1
                        struct timespec tS, *t = &tS;
 #endif
   }
   msglog(LOG_DEBUG, "data available\n");
-  LVme_setBitL(my->lvme, EXT_DAQ, my->daqRq);
+  do {
+    LVme_setBitL(my->lvme, EXT_DAQ, my->daqRq);
+  } while(!LVme_tstBitL(my->lvme, EXT_DAQ, my->daqRq));
 
   my->currAddr = my->fifo + 0x8;
 }
   size_t size;
   UInt1 trigTag;
 
-#if 1
-  size = LVme_getL(my->lvme, my->currAddr);
+  do {
+    size = LVme_getL(my->lvme, my->currAddr);
+  } while (size == 0xffffffff);
 
   /* copy one sub evt from RC to memory */
   for (firstAddr = my->currAddr; my->currAddr - firstAddr < size; my->currAddr += 4) {
-       *data++ = LVme_getL(my->lvme, my->currAddr);
+       do {
+               *data = LVme_getL(my->lvme, my->currAddr);
+        } while (*data == 0xffffffff);
+       data++;
   }
 
   trigTag = SubEvt_trigNr(subEvt) & 0xff;
-#else
-  my->currAddr = 0xffffffff;
-  SubEvt_setDecoding(subEvt, 0x00020001);
-  SubEvt_setSize(subEvt, 16);
-  SubEvt_setId(subEvt, 1);
-#endif
 
   /* normal extension of trigger tag */
   SubEvt_setTrigNr(subEvt, my->trigNr << 8 | trigTag);
 
   return 0;
 }
+
+
+
+