Index: /trunk/BNC/combination/bnccomb.cpp
===================================================================
--- /trunk/BNC/combination/bnccomb.cpp	(revision 2923)
+++ /trunk/BNC/combination/bnccomb.cpp	(revision 2924)
@@ -75,4 +75,17 @@
   }
 
+  // Reject delayed corrections
+  // --------------------------
+  if (_processedBeforeTime.valid() && newCorr->tt < _processedBeforeTime) {
+    delete newCorr;
+    return;
+  }
+
+  // Process all older Epochs (if there are any)
+  // -------------------------------------------
+  const double waitTime = 5.0; // wait 5 sec
+  _processedBeforeTime = newCorr->tt - waitTime;
+  processEpochs();
+
   // Check Modulo Time
   // -----------------
@@ -99,5 +112,7 @@
     AC->epochs.append(newEpoch);
   }
-
+  
+  // Merge or add the correction
+  // ---------------------------
   if (newEpoch->corr.find(newCorr->prn) != newEpoch->corr.end()) {
     newEpoch->corr[newCorr->prn]->readLine(line); // merge (multiple messages)
@@ -106,13 +121,9 @@
     newEpoch->corr[newCorr->prn] = newCorr;
   }
-
-  processEpochsBefore(newCorr->tt);
 }
 
 // 
 ////////////////////////////////////////////////////////////////////////////
-void bncComb::processEpochsBefore(const bncTime& time) {
-
-  const double waitTime = 10.0; // wait 10 seconds
+void bncComb::processEpochs() {
 
   bool corrProcessed = false;
@@ -123,11 +134,8 @@
     cmbAC* AC = itAC.value();
 
-
     QMutableListIterator<cmbEpoch*> itEpo(AC->epochs);
     while (itEpo.hasNext()) {
       cmbEpoch* epoch = itEpo.next();
-      double dt = time - epoch->time;
-
-      if      (dt == waitTime) {
+      if (epoch->time < _processedBeforeTime) {
         QMapIterator<QString, t_corr*> itCorr(epoch->corr);
         while (itCorr.hasNext()) {
@@ -136,11 +144,4 @@
           processSingleCorr(AC, corr);
           corrProcessed = true;
-        }
-      }
-
-      if (dt >= waitTime) {
-        if (dt > waitTime) {
-          cout << "delete " << AC->name.toAscii().data() << " " 
-               << epoch->time.timestr() << " " << endl;
         }
         delete epoch;
Index: /trunk/BNC/combination/bnccomb.h
===================================================================
--- /trunk/BNC/combination/bnccomb.h	(revision 2923)
+++ /trunk/BNC/combination/bnccomb.h	(revision 2924)
@@ -48,9 +48,10 @@
   };
 
-  void processEpochsBefore(const bncTime& time);
+  void processEpochs();
   void processSingleCorr(const cmbAC* AC, const t_corr* corr);
   void printResults() const;
 
   QMap<QString, cmbAC*> _ACs;   // Analytical Centers (key is mountpoint)
+  bncTime               _processedBeforeTime;
 };
 
