Index: branches/BNC_2.12/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- branches/BNC_2.12/src/RTCM3/RTCM3Decoder.cpp	(revision 8843)
+++ branches/BNC_2.12/src/RTCM3/RTCM3Decoder.cpp	(revision 8854)
@@ -1029,4 +1029,5 @@
     int i, week;
     uint64_t numbits = 0, bitfield = 0;
+    int fitIntervalFalg = 0;
 
     data += 3; /* header */
@@ -1080,5 +1081,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;
 
@@ -1185,5 +1189,6 @@
     int i, week;
     uint64_t numbits = 0, bitfield = 0;
-
+    int fitIntervalFalg = 0;
+    
     data += 3; /* header */
     size -= 6; /* header + crc */
@@ -1241,5 +1246,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: branches/BNC_2.12/src/RTCM3/ephEncoder.cpp
===================================================================
--- branches/BNC_2.12/src/RTCM3/ephEncoder.cpp	(revision 8843)
+++ branches/BNC_2.12/src/RTCM3/ephEncoder.cpp	(revision 8854)
@@ -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) {
@@ -47,5 +47,6 @@
     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 +126,6 @@
     GPSADDBITS(6, eph._health)
     GPSADDBITS(1, eph._L2PFlag)
-    GPSADDBITS(1, eph._fitInterval)
+    (eph._fitInterval == 4.0) ? fitIntervalFlag = 0 : fitIntervalFlag = 1;
+    GPSADDBITS(1, fitIntervalFlag)
   }
 
