Index: fact/FADctrl/FADBoard.cc
===================================================================
--- fact/FADctrl/FADBoard.cc	(revision 11385)
+++ fact/FADctrl/FADBoard.cc	(revision 11414)
@@ -58,5 +58,5 @@
   DIM_Frequency = new DimService((ID.str()+"Frequency").c_str(), Status.Frequency);
   DIM_BoardTime = new DimService((ID.str()+"BoardTime").c_str(), (char *) "I", &Status.BoardTime, sizeof(Status.BoardTime));
-  DIM_Lock = new DimService((ID.str()+"Lock").c_str(), (char *) "S", &Status.Lock, sizeof(Status.Lock));
+  DIM_Lock = new DimService((ID.str()+"Lock").c_str(), (char *) "S", NULL, 0);
   DIM_TriggerNum = new DimService((ID.str()+"TriggerNum").c_str(), (char *) "I", &Status.TriggerNum, sizeof(Status.TriggerNum));
   DIM_Temp = new DimService((ID.str()+"Temperature").c_str(), (char *) "F", NULL, 0);
@@ -106,5 +106,5 @@
   delete DIM_TriggerNum;	delete DIM_Temp;
   delete DIM_DAC;			delete DIM_ROI;
-  delete DIM_ACalData;  
+  delete DIM_ACalData;		delete DIM_BoardTime;
   delete[] Name;
 }
@@ -536,4 +536,10 @@
 	  Unlock();
 	  
+	  // Check if trigger cells resonable (to trace FAD 'double signal' bug)
+	  if (abs((min_element(Status.TriggerCell,Status.TriggerCell+4) - max_element(Status.TriggerCell,Status.TriggerCell+4) + 1024)%1024) > 20) {
+		SetStatus("Warning: Trigger cell mismatch board %s, cells are %d %d %d %d", Name, Status.TriggerCell[0], Status.TriggerCell[1], Status.TriggerCell[2], Status.TriggerCell[3]);
+		m->Message(m->WARN, "Trigger cell mismatch board %s, cells are %d %d %d %d", Name, Status.TriggerCell[0], Status.TriggerCell[1], Status.TriggerCell[2], Status.TriggerCell[3]);
+	  }
+	  
   	  // Amplitude calibration (will check if Mode is acalib)
 	  AmplitudeCalibration();
@@ -553,5 +559,5 @@
 
 		if (memcmp(PrevStatus.Lock, Status.Lock, sizeof(Status.Lock)) != 0) {
-		  DIM_Lock->updateService();
+		  DIM_Lock->updateService(Status.Lock, sizeof(Status.Lock));
 		}
 		if (memcmp(PrevStatus.Temp, Status.Temp, sizeof(Status.Temp)) != 0) {
@@ -666,5 +672,4 @@
 void FADBoard::threadHandler() {
 
-  //int List[] = {5001, 5002, 5003, 5004, 5005, 5006, 5007};
   int List[] = {31920, 31921, 31922, 31923, 31924, 31925, 31926};
   int Socket[sizeof(List)/sizeof(int)], MaxSocketNum, Ret;
