Index: trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 10829)
+++ trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 10899)
@@ -1549,5 +1549,4 @@
     GETFLOATSIGN(eph._Crs,  15, 1.0 / (double )(1 <<  4))
     GETFLOATSIGN(eph._IDOT, 14, R2R_PI/(double)(1<<30)/(double)(1<<13))
-    SKIPBITS(2)
     GETFLOATSIGN(eph._M0,   32, R2R_PI/(double)(1<<30)/(double)(1<< 1))
     GETBITS(i, 16)
@@ -1586,5 +1585,7 @@
     GETFLOATSIGN(eph._OMEGADOT, 22, R2R_PI/(double)(1<<30)/(double)(1<<11))
     GETFLOATSIGN(eph._i0,       32, R2R_PI/(double)(1<<30)/(double)(1<< 1))
-    SKIPBITS(2)
+    GETBITS(eph._s_bits_after_IDOT, 2)
+    GETBITS(eph._s_bits_after_i0, 2)
+
     eph._TOT = 0.9999e9;
     eph._type = t_eph::LNAV;
Index: trunk/BNC/src/RTCM3/ephEncoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/ephEncoder.cpp	(revision 10829)
+++ trunk/BNC/src/RTCM3/ephEncoder.cpp	(revision 10899)
@@ -87,5 +87,4 @@
     GPSADDBITSFLOAT(15, eph._Crs, 1.0/static_cast<double>(1<< 4))
     GPSADDBITSFLOAT(14, eph._IDOT, M_PI/static_cast<double>(1<<30)/static_cast<double>(1<<13))
-    GPSADDBITS(2, 0) /* padding */
     GPSADDBITSFLOAT(32, eph._M0, M_PI/static_cast<double>(1<<30)/static_cast<double>(1<<1))
     GPSADDBITS(16, static_cast<int>(eph._TOEsec)>>4)
@@ -96,5 +95,6 @@
     GPSADDBITSFLOAT(22, eph._OMEGADOT, M_PI/static_cast<double>(1<<30)/static_cast<double>(1<<11))
     GPSADDBITSFLOAT(32, eph._i0, M_PI/static_cast<double>(1<<30)/static_cast<double>(1<<1))
-    GPSADDBITS(2, 0) /* padding */
+    GPSADDBITS(2, eph._s_bits_after_IDOT)
+    GPSADDBITS(2, eph._s_bits_after_i0)
   } else {
     GPSADDBITS(12, 1019)
