Index: /branches/BNC_2.12/src/pppInclude.h
===================================================================
--- /branches/BNC_2.12/src/pppInclude.h	(revision 7930)
+++ /branches/BNC_2.12/src/pppInclude.h	(revision 7931)
@@ -35,5 +35,5 @@
   double       _trpStdev;
   int          _numSat;       
-  double       _pDop;         
+  double       _hDop;         
   std::string  _log;          
   bool         _error;        
Index: /branches/BNC_2.12/src/pppRun.cpp
===================================================================
--- /branches/BNC_2.12/src/pppRun.cpp	(revision 7930)
+++ /branches/BNC_2.12/src/pppRun.cpp	(revision 7931)
@@ -599,4 +599,8 @@
   double lamDeg = ell[1] * 180 / M_PI;
 
+  unsigned year, month, day;
+  output._epoTime.civil_date(year, month, day);
+  double gps_utc = gnumleap(year, month, day);
+
   char phiCh = 'N';
   if (phiDeg < 0) {
@@ -616,5 +620,5 @@
     string datestr = output._epoTime.datestr(0); // yyyymmdd
     out << "GPRMC,"
-        << output._epoTime.timestr(0,0) << ",A,"
+        << (output._epoTime - gps_utc).timestr(3,0) << ",A,"
         << setw(2) << setfill('0') << int(phiDeg)
         << setw(6) << setprecision(3) << setfill('0')
@@ -628,5 +632,5 @@
   else if (strType == 'G') {
     out << "GPGGA,"
-        << output._epoTime.timestr(0,0) << ','
+        << (output._epoTime - gps_utc).timestr(2,0) << ','
         << setw(2) << setfill('0') << int(phiDeg)
         << setw(10) << setprecision(7) << setfill('0')
@@ -636,5 +640,5 @@
         << fmod(60*lamDeg,60) << ',' << lamCh
         << ",1," << setw(2) << setfill('0') << output._numSat << ','
-        << setw(3) << setprecision(1) << output._pDop << ','
+        << setw(3) << setprecision(1) << output._hDop << ','
         << setprecision(3) << ell[2] << ",M,0.0,M,,";
   }
