Index: trunk/BNS/bns.cpp
===================================================================
--- trunk/BNS/bns.cpp	(revision 2767)
+++ trunk/BNS/bns.cpp	(revision 2768)
@@ -467,8 +467,13 @@
         }
 
+        // Use old ephemeris if the new one is too recent
+        // ----------------------------------------------
         t_eph* ep = 0;
         if (pair) {
           ep = pair->eph;
-          //// ep = pair->oldEph;
+          if (pair->oldEph && ep && 
+              ep->receptDateTime().secsTo(QDateTime::currentDateTime()) < 60) {
+            ep = pair->oldEph;
+          }
         }
 
Index: trunk/BNS/bnseph.cpp
===================================================================
--- trunk/BNS/bnseph.cpp	(revision 2767)
+++ trunk/BNS/bnseph.cpp	(revision 2768)
@@ -177,4 +177,5 @@
    
   if (eph->read(lines) == success) {
+    eph->setRecepDateTime(QDateTime::currentDateTime());
     emit(newEph(eph, nBytes));
   } 
Index: trunk/BNS/bnseph.h
===================================================================
--- trunk/BNS/bnseph.h	(revision 2767)
+++ trunk/BNS/bnseph.h	(revision 2768)
@@ -17,4 +17,8 @@
   bool    isNewerThan(const t_eph* eph) const;
   QString prn() const {return _prn;}
+  void    setRecepDateTime(const QDateTime& dateTime) {
+    _receptDateTime = dateTime;
+  }
+  const QDateTime& receptDateTime() const {return _receptDateTime;}
 
   virtual void position(int GPSweek, double GPSweeks, ColumnVector& xc,
@@ -25,7 +29,8 @@
 
  protected:  
-  QString _prn;
-  int     _GPSweek;
-  double  _GPSweeks;
+  QString   _prn;
+  int       _GPSweek;
+  double    _GPSweeks;
+  QDateTime _receptDateTime;
 };
 
