Index: trunk/BNC/src/ephemeris.cpp
===================================================================
--- trunk/BNC/src/ephemeris.cpp	(revision 8921)
+++ trunk/BNC/src/ephemeris.cpp	(revision 8925)
@@ -301,5 +301,11 @@
         return;
       }
-      readDbl(line, pos[1], fieldLen, _fitInterval); // _fitInterval optional
+      // Rinex 3.04: fitInterval is specified as time period for GPS,
+      //             as flag for QZSS and not valid for IRNSS
+      double fitIntervalRnx;
+      readDbl(line, pos[1], fieldLen, fitIntervalRnx);
+      if (type() == t_eph::QZSS) {
+        _fitInterval = fitIntervalFromFlag(fitIntervalRnx, _IODC, t_eph::QZSS);
+      }
     }
   }
@@ -478,9 +484,15 @@
   }
   else {
+    // Rinex 3.04: fitInterval is specified as flag for QZSS
+    //             but as time period for GPS
+    double fitIntervalRnx = _fitInterval; // GPS
+    if (type() == t_eph::QZSS) {
+      (_fitInterval == 2.0) ? fitIntervalRnx = 0.0 : fitIntervalRnx = 1.0;
+    }
     out << QString(fmt)
-      .arg(tot,          19, 'e', 12)
-      .arg(_fitInterval, 19, 'e', 12)
-      .arg("",           19, QChar(' '))
-      .arg("",           19, QChar(' '));
+      .arg(tot,            19, 'e', 12)
+      .arg(fitIntervalRnx, 19, 'e', 12)
+      .arg("",             19, QChar(' '))
+      .arg("",             19, QChar(' '));
   }
 
Index: trunk/BNC/src/ephemeris.h
===================================================================
--- trunk/BNC/src/ephemeris.h	(revision 8921)
+++ trunk/BNC/src/ephemeris.h	(revision 8925)
@@ -143,5 +143,5 @@
 
   double  _TOT;             // Transmission time
-  double  _fitInterval;     // Fit interval (not valid for IRNSS)
+  double  _fitInterval;     // Fit interval in hours (not valid for IRNSS)
 };
 
