Index: /trunk/FACT++/src/EventBuilder.c
===================================================================
--- /trunk/FACT++/src/EventBuilder.c	(revision 15427)
+++ /trunk/FACT++/src/EventBuilder.c	(revision 15428)
@@ -1279,5 +1279,5 @@
               continue;
 
-          const int b = i / 7 ;
+          const int board = i / 7 ;
           //const int p = i % 7 ;
 
@@ -1298,5 +1298,5 @@
               // Success (rd[i].sockStat == 0)
 
-              if (sockDef[b] > 0)
+              if (sockDef[board] > 0)
               {
                   rd[i].bufTyp = 0;                     // expect a header
@@ -1312,10 +1312,10 @@
               rd[i].skip   = 0;  //  start empty
 
-              gi_NumConnect[b] += cntsock;
+              gi_NumConnect[board] += cntsock;
 
               //gi.numConn[b]++;
-              gj.numConn[b]++;
-
-              factPrintf(kInfo, -1, "New connection %d (number of connections: %d)", b, gj.numConn[b]);
+              gj.numConn[board]++;
+
+              factPrintf(kInfo, -1, "New connection %d (number of connections: %d)", board, gj.numConn[board]);
           }
 
@@ -1352,12 +1352,12 @@
                   factPrintf(kInfo, 441, "Socket %d closed by FAD", i);
 
-                  const int s0 = sockDef[b] > 0 ? +1 : -1;
+                  const int s0 = sockDef[board] > 0 ? +1 : -1;
                   GenSock(s0, i, 0, NULL, &rd[i]);
 
                   //gi.gotErr[b]++;
 
-                  gi_NumConnect[b]-= cntsock ;
+                  gi_NumConnect[board]-= cntsock ;
                   //gi.numConn[b]--;
-                  gj.numConn[b]--;
+                  gj.numConn[board]--;
 
                   continue;
@@ -1365,5 +1365,5 @@
               // Success (jrd > 0)
 
-              gj.rateBytes[b] += jrd;
+              gj.rateBytes[board] += jrd;
 
               // are we skipping this board ...
@@ -1412,10 +1412,11 @@
 
               // no free entry in mBuffer, retry later
-              if (evID < 0)
+              if (evID == -1)
                   continue;
 
-              // If memory has not been allocated yet, allocate it
-              if (evID > 0 && mBuffer[evID].FADhead == NULL)
+              // We have a valid entry, but no memory has yet been allocated
+              if (evID >= 0 && mBuffer[evID].FADhead == NULL)
               {
+                  // Try to get memory from the big buffer
                   mBuffer[evID].FADhead = TGB_Malloc();
                   if (mBuffer[evID].FADhead == NULL)
@@ -1429,4 +1430,5 @@
                   }
 
+                  // Initialice mBuffer[evID]->fEvent
                   initEvent(evID);
 
@@ -1463,18 +1465,17 @@
 
               //we have a valid entry in mBuffer[]; fill it
-              const int boardId  = b;
               const int fadBoard = rd[i].rBuf->S[12];
-              const int fadCrate = fadBoard / 256;
-
-              if (boardId != (fadCrate * 10 + fadBoard % 256))
+              const int fadCrate = fadBoard>>8;
+
+              if (board != (fadCrate * 10 + (fadBoard&0xff)))
               {
                   factPrintf(kWarn, 301, "Board ID mismatch. Expected %d, got %d (C=%d, B=%d)",
-                             boardId, fadBoard, fadCrate, fadBoard % 256);
+                             board, fadBoard, fadCrate, fadBoard&0xff);
               }
 
-              if (mBuffer[evID].board[boardId] != -1)
+              if (mBuffer[evID].board[board] != -1)
               {
                   factPrintf(kWarn, 501, "Got event %5d from board %3d (i=%3d, len=%5d) twice: Starts with %3d %3d - ends with %3d %3d",
-                             evID, boardId, i, rd[i].fadLen,
+                             evID, board, i, rd[i].fadLen,
                              rd[i].rBuf->B[0], rd[i].rBuf->B[1],
                              rd[i].rBuf->B[rd[i].fadLen - 2],
@@ -1484,5 +1485,5 @@
 
               // Copy data from rd[i] to mBuffer[evID]
-              copyData(i, evID, boardId);
+              copyData(i, evID, board);
 
               // now we have stored a new board contents into Event structure
@@ -1494,5 +1495,5 @@
 
               mBuffer[evID].fEvent->NumBoards++;
-              mBuffer[evID].board[boardId] = boardId;
+              mBuffer[evID].board[board] = board;
               mBuffer[evID].nBoard++;
 
