Index: trunk/BNS/bns.cpp
===================================================================
--- trunk/BNS/bns.cpp	(revision 872)
+++ trunk/BNS/bns.cpp	(revision 873)
@@ -324,22 +324,26 @@
     
       for (int ii = 1; ii <= numSat; ii++) {
-        line = _clkSocket->readLine();
-      
-        QTextStream in(line);
-      
+
         QString      prn;
         ColumnVector xx(4);
-      
-        in >> prn >> xx(1) >> xx(2) >> xx(3) >> xx(4); 
-        xx(4) *= 1e-6;
-
-        gpsEph* ep   = 0;
-        if ( _ephList.contains(prn) ) {
-          t_ephPair* pair = _ephList[prn];
-          if (oldEph == 1) {
-            ep = pair->oldEph;
+        gpsEph*      ep = 0;
+
+        if (oldEph == 0) {
+          line = _clkSocket->readLine();
+          QTextStream in(line);
+          in >> prn;
+          if ( _ephList.contains(prn) ) {
+            in >> xx(1) >> xx(2) >> xx(3) >> xx(4); xx(4) *= 1e-6;
+            t_ephPair* pair = _ephList[prn];
+            pair->xx = xx;
+            ep = pair->eph;
           }
-          else {
-            ep = pair->eph;
+        }
+        else {
+          if ( _ephList.contains(prn) ) {
+            t_ephPair* pair = _ephList[prn];
+            prn = pair->eph->prn;
+            xx  = pair->xx;
+            ep  = pair->oldEph;
           }
         }
Index: trunk/BNS/bns.h
===================================================================
--- trunk/BNS/bns.h	(revision 872)
+++ trunk/BNS/bns.h	(revision 873)
@@ -20,4 +20,5 @@
     eph    = 0;
     oldEph = 0;
+    xx.ReSize(4);
   }
 
@@ -27,4 +28,5 @@
   }
 
+  ColumnVector xx;
   gpsEph* eph;
   gpsEph* oldEph;
