Index: trunk/BNC/src/rinex/corrfile.cpp
===================================================================
--- trunk/BNC/src/rinex/corrfile.cpp	(revision 6137)
+++ trunk/BNC/src/rinex/corrfile.cpp	(revision 6141)
@@ -71,8 +71,8 @@
   }
 
-  QStringList corrs;
+  QStringList lines;
 
   if (!_lastLine.isEmpty()) {
-    corrs << _lastLine;
+    lines << _lastLine;
   }
 
@@ -85,22 +85,30 @@
 
     if (stopRead(tt)) {
-      if (corrs.size()) {
-
-        QListIterator<QString> it(corrs);
-        while (it.hasNext()) {
-          const QString& cLine = it.next();
-          t_corr* corr = new t_corr();
-          corr->readLine(cLine);
-          if (corr->tRao.valid()) {
-            _corrIODs[corr->prn] = corr->iod;
-          }
+      QList<t_orbCorr> orbCorr;
+      QList<t_clkCorr> clkCorr;
+      QListIterator<QString> it(lines);
+      while (it.hasNext()) {
+        const QString& str = it.next();
+        if      (str[0] == 'C') {
+          t_clkCorr corr(str.toAscii().data());
+          _lastTime = corr._time;
+          clkCorr.push_back(corr);
         }
-
-        emit newCorrections(corrs);
+        else if (str[0] == 'O') {
+          t_orbCorr corr(str.toAscii().data());
+          _lastTime = corr._time;
+          orbCorr.push_back(corr);
+        }
+      }         
+      if (orbCorr.size() > 0) {
+        emit newOrbCorrections(orbCorr);
+      }
+      if (clkCorr.size() > 0) {
+        emit newClkCorrections(clkCorr);
       }
       return;
     }
     else {
-      corrs << _lastLine;
+      lines << _lastLine;
     }
   }
@@ -111,16 +119,9 @@
 bool t_corrFile::stopRead(const bncTime& tt) {
 
-  if (_lastLine.isEmpty()) {
+  if (_lastTime.undef()) {
     return false;
   }
 
-  QTextStream in(_lastLine.toAscii(), QIODevice::ReadOnly);
-  int    messageType, updateInterval, GPSweek;
-  double GPSweeks;
-  in >> messageType >> updateInterval >> GPSweek >> GPSweeks;
-
-  bncTime tNew(GPSweek, GPSweeks);
-
-  if (tNew > tt) {
+  if (_lastTime > tt) {
     return true;
   }    
Index: trunk/BNC/src/rinex/corrfile.h
===================================================================
--- trunk/BNC/src/rinex/corrfile.h	(revision 6137)
+++ trunk/BNC/src/rinex/corrfile.h	(revision 6141)
@@ -29,4 +29,5 @@
 #include "bncconst.h"
 #include "bnctime.h"
+#include "satObs.h"
 
 class t_corrFile : public QObject {
@@ -40,5 +41,6 @@
 
  signals:
-  void newCorrections(QStringList);
+  void newOrbCorrections(QList<t_orbCorr>);
+  void newClkCorrections(QList<t_clkCorr>);
 
  private:
@@ -48,4 +50,5 @@
   QString            _lastLine;
   QMap<QString, int> _corrIODs;
+  bncTime            _lastTime;
 };
 
