Index: trunk/BNC/src/GPSS/hassDecoder.cpp
===================================================================
--- trunk/BNC/src/GPSS/hassDecoder.cpp	(revision 5119)
+++ trunk/BNC/src/GPSS/hassDecoder.cpp	(revision 5120)
@@ -46,6 +46,6 @@
   _GPSweeks = -1.0;
 
-  connect(this, SIGNAL(newCorrLine(QString, QString, long)), 
-          BNC_CORE, SLOT(slotNewCorrLine(QString, QString, long)));
+  connect(this, SIGNAL(newCorrLine(QString, QString, bncTime)), 
+          BNC_CORE, SLOT(slotNewCorrLine(QString, QString, bncTime)));
 }
 
@@ -92,9 +92,7 @@
     // Correction Time
     // ---------------
-    bncTime tt; 
-    tt.setmjd(daySec, mjd);
+    bncTime coTime; coTime.setmjd(daySec, mjd);
 
-    _GPSweeks = tt.gpssec();
-    long coTime = tt.gpsw() * 7*24*3600 + long(floor(_GPSweeks+0.5));
+    _GPSweeks = coTime.gpssec();
 
     // Transform Correction
@@ -118,5 +116,5 @@
     ColumnVector xc(4);
     ColumnVector vv(3);
-    eph->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
+    eph->position(coTime.gpsw(), coTime.gpssec(), xc.data(), vv.data());
 
     ColumnVector rao(3);
@@ -146,5 +144,5 @@
                      "   %10.5f %10.5f %10.5f %10.5f"
                      "   %10.5f",
-                     messageType, updateInterval, tt.gpsw(), _GPSweeks,
+                     messageType, updateInterval, coTime.gpsw(), _GPSweeks,
                      prn.toAscii().data(), IOD, 
                      dClk, rao[0], rao[1], rao[2],
Index: trunk/BNC/src/GPSS/hassDecoder.h
===================================================================
--- trunk/BNC/src/GPSS/hassDecoder.h	(revision 5119)
+++ trunk/BNC/src/GPSS/hassDecoder.h	(revision 5120)
@@ -16,5 +16,5 @@
 
  signals:
-  void newCorrLine(QString line, QString staID, long coTime);
+  void newCorrLine(QString line, QString staID, bncTime coTime);
 
  private:
Index: trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 5119)
+++ trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 5120)
@@ -72,6 +72,6 @@
   _GPSweeks = -1.0;
 
-  connect(this, SIGNAL(newCorrLine(QString, QString, long)), 
-          BNC_CORE, SLOT(slotNewCorrLine(QString, QString, long)));
+  connect(this, SIGNAL(newCorrLine(QString, QString, bncTime)), 
+          BNC_CORE, SLOT(slotNewCorrLine(QString, QString, bncTime)));
 
   connect(this, SIGNAL(newMessage(QByteArray,bool)), 
@@ -254,7 +254,7 @@
   bncTime currTime(currWeek, currSec);
 
-  bncTime corrTime(GPSweek, GPSweeks);
-
-  double dt = currTime - corrTime;
+  bncTime coTime(GPSweek, GPSweeks);
+
+  double dt = currTime - coTime;
   const double MAXDT = 10 * 60.0;
   if (fabs(dt) > MAXDT) {
@@ -263,5 +263,4 @@
   }
   else {
-    long coTime = GPSweek * 7*24*3600 + long(floor(_GPSweeks+0.5));
     emit newCorrLine(line, _staID, coTime);
   }
Index: trunk/BNC/src/RTCM3/RTCM3coDecoder.h
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 5119)
+++ trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 5120)
@@ -50,5 +50,5 @@
                      std::ofstream*& out);
  signals:
-  void newCorrLine(QString line, QString staID, long coTime);
+  void newCorrLine(QString line, QString staID, bncTime coTime);
   void newMessage(QByteArray msg, bool showOnScreen);
 
Index: trunk/BNC/src/bnccore.cpp
===================================================================
--- trunk/BNC/src/bnccore.cpp	(revision 5119)
+++ trunk/BNC/src/bnccore.cpp	(revision 5120)
@@ -115,7 +115,5 @@
   _userName = _userName.leftJustified(20, ' ', true);
 
-  _lastDumpCoSec = 0;
-
-  _corrs = new QMultiMap<long, QString>;
+  _corrs = new QMultiMap<bncTime, QString>;
 
   _currentDateAndTimeGPS = 0;
@@ -633,5 +631,5 @@
 // 
 ////////////////////////////////////////////////////////////////////////////
-void t_bncCore::slotNewCorrLine(QString line, QString staID, long coTime) {
+void t_bncCore::slotNewCorrLine(QString line, QString staID, bncTime coTime) {
 
   QMutexLocker locker(&_mutex);
@@ -646,25 +644,25 @@
 
   bncSettings settings;
-  _waitCoTime = settings.value("corrTime").toInt();
-  if (_waitCoTime < 0) {
-    _waitCoTime = 0;
+  _waitCoTime = settings.value("corrTime").toDouble();
+  if (_waitCoTime < 0.0) {
+    _waitCoTime = 0.0;
   }
 
   // First time, set the _lastDumpSec immediately
   // --------------------------------------------
-  if (_lastDumpCoSec == 0) {
-    _lastDumpCoSec = coTime - 1;
+  if (!_lastDumpCoSec.valid()) {
+    _lastDumpCoSec = coTime - 1.0;
   }
 
   // An old correction - throw it away
   // ---------------------------------
-  if (_waitCoTime > 0 && coTime <= _lastDumpCoSec) {
-    if (!_bncComb) {
+  if (_waitCoTime > 0.0 && coTime <= _lastDumpCoSec) {
+    ///    if (!_bncComb) {
       QString line = staID + ": Correction for one sat neglected because overaged by " +
-                      QString().sprintf(" %ld sec",
+                      QString().sprintf(" %f sec",
                       _lastDumpCoSec - coTime + _waitCoTime);
       messagePrivate(line.toAscii());
       emit( newMessage(line.toAscii(), true) );
-    }
+      ///    }
     return;
   }
@@ -674,5 +672,5 @@
   // Dump Corrections
   // ----------------
-  if      (_waitCoTime == 0) {
+  if      (_waitCoTime == 0.0) {
     dumpCorrs();
   }
@@ -685,6 +683,6 @@
 // Dump Complete Correction Epochs
 ////////////////////////////////////////////////////////////////////////////
-void t_bncCore::dumpCorrs(long minTime, long maxTime) {
-  for (long sec = minTime; sec <= maxTime; sec++) {
+void t_bncCore::dumpCorrs(bncTime minTime, bncTime maxTime) {
+  for (bncTime sec = minTime; sec <= maxTime; sec = sec + 1.0) {
     QList<QString> allCorrs = _corrs->values(sec);
     dumpCorrs(allCorrs);
@@ -697,5 +695,5 @@
 void t_bncCore::dumpCorrs() {
   QList<QString> allCorrs;
-  QMutableMapIterator<long, QString> it(*_corrs);
+  QMutableMapIterator<bncTime, QString> it(*_corrs);
   while (it.hasNext()) {
     allCorrs << it.next().value();
Index: trunk/BNC/src/bnccore.h
===================================================================
--- trunk/BNC/src/bnccore.h	(revision 5119)
+++ trunk/BNC/src/bnccore.h	(revision 5120)
@@ -72,5 +72,5 @@
     void slotNewGlonassEph(glonassephemeris* glonasseph);
     void slotNewGalileoEph(galileoephemeris* galileoeph);
-    void slotNewCorrLine(QString line, QString staID, long coTime);
+    void slotNewCorrLine(QString line, QString staID, bncTime coTime);
     void slotQuit();
 
@@ -92,5 +92,5 @@
     void printOutput(bool printFile, QTextStream* stream, 
                      const QString& strV2, const QString& strV3);
-    void dumpCorrs(long minTime, long maxTime);
+    void dumpCorrs(bncTime minTime, bncTime maxTime);
     void dumpCorrs();
     void dumpCorrs(const QList<QString>& allCorrs);
@@ -127,7 +127,7 @@
     QList<QTcpSocket*>* _socketsNMEA;
     bncCaster*          _caster;
-    long                _lastDumpCoSec;
-    long                _waitCoTime;
-    QMultiMap<long, QString>* _corrs;
+    bncTime             _lastDumpCoSec;
+    double              _waitCoTime;
+    QMultiMap<bncTime, QString>* _corrs;
     QString             _confFileName;
     QDate               _fileDate;
