Index: trunk/BNC/src/PPP/pppEphPool.cpp
===================================================================
--- trunk/BNC/src/PPP/pppEphPool.cpp	(revision 10329)
+++ trunk/BNC/src/PPP/pppEphPool.cpp	(revision 10330)
@@ -121,12 +121,9 @@
 
   for (unsigned ii = 0; ii < _ephs.size(); ii++) {
-    t_eph* eph = _ephs[ii];
+    const t_eph* eph = _ephs[ii];
     t_irc irc = eph->getCrd(tt, xc, vv, OPT->useOrbClkCorr());
     if (irc == success) {
-      if (eph->prn().system() == 'R') {
-        double age = tt - eph->TOC();
-        if (fabs(age) > 3600.0) {
+        if (outDatedBcep(eph, tt)) {
           continue;
-        }
       }
       return irc;
Index: trunk/BNC/src/bncephuser.cpp
===================================================================
--- trunk/BNC/src/bncephuser.cpp	(revision 10329)
+++ trunk/BNC/src/bncephuser.cpp	(revision 10330)
@@ -194,5 +194,7 @@
   // --------------------------------------------------------
   if (realTime) {
-    if (outDatedBcep(eph)) {
+    QDateTime now = currentDateAndTimeGPS();
+    bncTime   currentTime(now.toString(Qt::ISODate).toStdString());
+    if (outDatedBcep(eph, currentTime)) {
       eph->setCheckState(t_eph::outdated);
       return;
Index: trunk/BNC/src/bncutils.cpp
===================================================================
--- trunk/BNC/src/bncutils.cpp	(revision 10329)
+++ trunk/BNC/src/bncutils.cpp	(revision 10330)
@@ -265,9 +265,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////
-bool outDatedBcep(const t_eph *eph) {
+bool outDatedBcep(const t_eph *eph, bncTime tt) {
   bncTime   toc = eph->TOC();
-  QDateTime now = currentDateAndTimeGPS();
-  bncTime currentTime(now.toString(Qt::ISODate).toStdString());
-  double dt = currentTime - toc;
+  double dt = tt -toc;
 
   // update interval: 2h, data sets are valid for 4 hours
@@ -280,5 +278,5 @@
   }
   // updated every 30 minutes + 5 min
-  else if (eph->type() == t_eph::GLONASS && (dt >  3900.0 || dt < -2100.0)) {
+  else if (eph->type() == t_eph::GLONASS && (dt >  2100.0 || dt < -2100.0)) {
     return true;
   }
Index: trunk/BNC/src/bncutils.h
===================================================================
--- trunk/BNC/src/bncutils.h	(revision 10329)
+++ trunk/BNC/src/bncutils.h	(revision 10330)
@@ -76,5 +76,5 @@
 bool         checkForWrongObsEpoch(bncTime obsEpoch);
 
-bool         outDatedBcep(const t_eph *eph);
+bool         outDatedBcep(const t_eph *eph, bncTime tt);
 
 QByteArray   ggaString(const QByteArray& latitude, const QByteArray& longitude,
Index: trunk/BNC/src/combination/bnccomb.cpp
===================================================================
--- trunk/BNC/src/combination/bnccomb.cpp	(revision 10329)
+++ trunk/BNC/src/combination/bnccomb.cpp	(revision 10330)
@@ -638,5 +638,6 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncComb::processEpoch(bncTime epoTime, const vector<t_clkCorr>& clkCorrVec) {
-
+  QDateTime now = currentDateAndTimeGPS();
+  bncTime   currentTime(now.toString(Qt::ISODate).toStdString());
   for (unsigned ii = 0; ii < clkCorrVec.size(); ii++) {
     const t_clkCorr& clkCorr = clkCorrVec[ii];
@@ -698,5 +699,6 @@
       continue;
     }
-    else if (ephLast->checkState() == t_eph::bad ||
+    else if (outDatedBcep(ephLast, currentTime)  ||
+             ephLast->checkState() == t_eph::bad ||
              ephLast->checkState() == t_eph::outdated ||
              ephLast->checkState() == t_eph::unhealthy) {
@@ -711,5 +713,7 @@
         _newCorr->_eph = ephLast;
       }
-      else if (ephPrev && ephPrev->checkState() == t_eph::ok &&
+      else if (ephPrev &&
+               !outDatedBcep(ephPrev, currentTime) &&  // if not updated in storage
+               ephPrev->checkState() == t_eph::ok  &&  // received
                ephPrev->IOD() == _newCorr->_iod) {
         _newCorr->_eph = ephPrev;
Index: trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 10329)
+++ trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 10330)
@@ -543,6 +543,8 @@
     }
 
+    QDateTime now = currentDateAndTimeGPS();
+    bncTime   currentTime(now.toString(Qt::ISODate).toStdString());
     if (eph &&
-        !outDatedBcep(eph)                    &&  // detected from storage because of no update
+        !outDatedBcep(eph, currentTime)       &&  // detected from storage because of no update
         eph->checkState() != t_eph::bad       &&
         eph->checkState() != t_eph::unhealthy &&
