Index: trunk/BNC/bncpppclient.cpp
===================================================================
--- trunk/BNC/bncpppclient.cpp	(revision 2808)
+++ trunk/BNC/bncpppclient.cpp	(revision 2809)
@@ -381,4 +381,5 @@
     QString prn;
     in >> messageType >> updateInterval >> GPSweek >> GPSweeks >> prn;
+
     if ( messageType == COTYPE_GPSCOMBINED     || 
          messageType == COTYPE_GLONASSCOMBINED ||
@@ -398,4 +399,5 @@
 
       cc->tt.set(GPSweek, GPSweeks);
+      _corr_tt.set(GPSweek, GPSweeks);
 
       if      ( messageType == COTYPE_GPSCOMBINED    || 
@@ -629,6 +631,30 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncPPPclient::processEpochs() {
-  processFrontEpoch();
-  delete _epoData.front();
-  _epoData.pop();
-}
+
+  double maxDt = 0.0;
+  if (!_pppMode) {
+    maxDt = 0.0;
+  }
+
+  while (!_epoData.empty()) {
+    t_epoData* frontEpoData = _epoData.front();
+
+    // No corrections yet, skip the epoch
+    // ----------------------------------
+    if (maxDt != 0.0 && !_corr_tt.valid()) {
+      delete _epoData.front();
+      _epoData.pop();
+      continue;
+    }
+
+    if (maxDt == 0 || 
+         (frontEpoData->tt - _corr_tt) < maxDt ) {
+      processFrontEpoch();
+      delete _epoData.front();
+      _epoData.pop();
+    }
+    else {
+      return;
+    }
+  }
+}
Index: trunk/BNC/bncpppclient.h
===================================================================
--- trunk/BNC/bncpppclient.h	(revision 2808)
+++ trunk/BNC/bncpppclient.h	(revision 2809)
@@ -190,4 +190,5 @@
   QMap<QString, t_ephPair*> _eph;
   QMap<QString, t_corr*>  _corr;
+  bncTime                 _corr_tt;
   QMap<QString, t_bias*>  _bias;
   std::queue<t_epoData*>  _epoData;
Index: trunk/BNC/bnctime.h
===================================================================
--- trunk/BNC/bnctime.h	(revision 2808)
+++ trunk/BNC/bnctime.h	(revision 2809)
@@ -22,9 +22,9 @@
   void         civil_time (unsigned int& hour, unsigned int& min,
                            double& sec) const;
-
-  bool   operator!=(const bncTime &time1) const;
-  double operator-(const bncTime &time1) const;
-  bncTime operator-(double sec) const;
-  bncTime operator+(double sec) const;
+  bool         valid() const {return _mjd != 0 || _sec != 0.0;}
+  bool         operator!=(const bncTime &time1) const;
+  double       operator-(const bncTime &time1) const;
+  bncTime      operator-(double sec) const;
+  bncTime      operator+(double sec) const;
 
   std::string timestr(unsigned numdec = 3, char sep = ':') const;  
