Index: /trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- /trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 8851)
+++ /trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 8852)
@@ -1021,4 +1021,5 @@
     int i, week;
     uint64_t numbits = 0, bitfield = 0;
+    int fitIntervalFalg = 0;
 
     data += 3; /* header */
@@ -1071,5 +1072,8 @@
     GETBITS(eph._health, 6)
     GETBITS(eph._L2PFlag, 1)
-    GETBITS(eph._fitInterval, 1)
+    GETBITS(fitIntervalFalg, 1)
+    if (fitIntervalFalg == 0) {
+      eph._fitInterval = 4.0;
+    }
     eph._TOT = 0.9999e9;
 
@@ -1177,4 +1181,5 @@
     int i, week;
     uint64_t numbits = 0, bitfield = 0;
+    int fitIntervalFalg = 0;
 
     data += 3; /* header */
@@ -1232,5 +1237,8 @@
     GETFLOATSIGN(eph._TGD,       8, 1.0 / (double )(1 << 30) / (double )(1 << 1))
     GETBITS(eph._IODC, 10)
-    GETBITS(eph._fitInterval, 1)
+    GETBITS(fitIntervalFalg, 1)
+    if (fitIntervalFalg == 0) {
+      eph._fitInterval = 2.0;
+    }
     eph._TOT = 0.9999e9;
 
Index: /trunk/BNC/src/RTCM3/ephEncoder.cpp
===================================================================
--- /trunk/BNC/src/RTCM3/ephEncoder.cpp	(revision 8851)
+++ /trunk/BNC/src/RTCM3/ephEncoder.cpp	(revision 8852)
@@ -15,5 +15,5 @@
   unsigned long long bitbuffer = 0;
   int ura = indexFromAccuracy(eph._ura, eph.type());
-  int L5Flag, SFlag;
+  int L5Flag, SFlag,  fitIntervalFlag;
 
   if (eph.type() == t_eph::QZSS) {
@@ -46,6 +46,6 @@
     GPSADDBITS(6, eph._health)
     GPSADDBITSFLOAT(8, eph._TGD, 1.0/static_cast<double>(1<<30)/static_cast<double>(1<<1))
-    GPSADDBITS(10, eph._IODC)
-    GPSADDBITS(1, eph._fitInterval)
+    (eph._fitInterval == 2.0) ? fitIntervalFlag = 0 : fitIntervalFlag = 1;
+    GPSADDBITS(1, fitIntervalFlag)
     GPSADDBITS(3, 0) /* padding */
   } else if (eph.type() == t_eph::IRNSS) {
@@ -125,5 +125,6 @@
     GPSADDBITS(6, eph._health)
     GPSADDBITS(1, eph._L2PFlag)
-    GPSADDBITS(1, eph._fitInterval)
+    (eph._fitInterval == 4.0) ? fitIntervalFlag = 0 : fitIntervalFlag = 1;
+    GPSADDBITS(1, fitIntervalFlag)
   }
 
