Index: /trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- /trunk/FACT++/src/EventBuilderWrapper.h	(revision 11818)
+++ /trunk/FACT++/src/EventBuilderWrapper.h	(revision 11819)
@@ -414,4 +414,9 @@
 //    size_t GetUsedMemory() const { return gi_usedMem; }
 
+    void LoadDrsCalibration(const char *fname)
+    {
+        DataCalib::ReadFits(fname, fMsg);
+    }
+
     virtual int CloseOpenFiles() { CloseRunFile(0, 0, 0); return 0; }
 
@@ -704,31 +709,66 @@
         for (const FAD::EventHeader *ptr=beg; ptr!=end; ptr++)
         {
-            // Event incomplete
-            //if (ptr->fStartDelimiter==0)
-            //    return -1;
-
-                // Either one of
-                //   * fStatus
-                //   * fRunNumber
-                //   * fEventCounter
-                //   * fAdcClockPhaseShift
-                //   * fTriggerGeneratorPrescaler
-                //   * fDac
-	    // inconsistent
-
-	    // FIXME: Produce some output, only once per run or
-            //        minute
+            // FIXME: Compare with expectations!!!
+            if (ptr->fStartDelimiter==0)
+            {
+                if (ptr==beg)
+                    beg++;
+                continue;
+            }
+
+            if (beg->fStatus != ptr->fStatus)
+            {
+                fMsg.Error("Inconsistency in FAD status detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
+                return -1;
+            }
+
+            if (beg->fRunNumber != ptr->fRunNumber)
+            {
+                fMsg.Error("Inconsistent run number detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
+                return -1;
+            }
 
             /*
-            if (*ptr != *beg)
+            if (beg->fVersion != ptr->fVersion)
+            {
+                Error("Inconsist firmware version detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
+                break;
+            }
+            if (beg->fEventCounter != ptr->fEventCounter)
+            {
+                Error("Inconsist run number detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
+                break;
+            }
+            if (beg->fTriggerCounter != ptr->fTriggerCounter)
+            {
+                Error("Inconsist trigger number detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
+                break;
+            }*/
+
+            if (beg->fAdcClockPhaseShift != ptr->fAdcClockPhaseShift)
+            {
+                fMsg.Error("Inconsistent phase shift detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
                 return -1;
-
-            if (ptr->fTriggerType != beg->fTriggerType)
+            }
+
+            if (memcmp(beg->fDac, ptr->fDac, sizeof(beg->fDac)))
+            {
+                fMsg.Error("Inconsistent DAC values detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
                 return -1;
-            if (ptr->fTriggerId   != beg->fTriggerId)
+            }
+
+            if (beg->fTriggerType != ptr->fTriggerType)
+            {
+                fMsg.Error("Inconsistent trigger type detected.... closing run.");
+                CloseRunFile(runNr, 0, 0);
                 return -1;
-            if (ptr->fVersion     != beg->fVersion)
-	    return -1;
-            */
+            }
         }
 
