Index: trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 10993)
+++ trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 10994)
@@ -2270,5 +2270,5 @@
           }
           else {
-            _coDecoders[_staID.toLatin1()]->initSsrFormatType(RTCM3coDecoder::RTCMssr);
+            _coDecoders[_staID.toLatin1()]->initSsrFormatType(RTCM3coDecoder::RTCMnewssr);
           }
         }
Index: trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 10993)
+++ trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 10994)
@@ -511,7 +511,7 @@
       frqPhaseBias._rnxType2ch.assign(_ssrCorr->codeTypeToRnxType(sys, biasEntry.Type));
       frqPhaseBias._value                = biasEntry.Bias;
-      frqPhaseBias._fixIndicator         = biasEntry.SignalIntegerIndicator;
-      frqPhaseBias._fixWideLaneIndicator = biasEntry.SignalsWideLaneIntegerIndicator;
-      frqPhaseBias._jumpCounter          = biasEntry.SignalDiscontinuityCounter;
+      frqPhaseBias._fixIndicator         = biasEntry.IntegerIndicator;
+      frqPhaseBias._fixWideLaneIndicator = biasEntry.WidelaneGroupIndicator;
+      frqPhaseBias._jumpCounter          = biasEntry.DiscontinuityCounter;
       if (!frqPhaseBias._rnxType2ch.empty()) {
         satPhaseBias._bias.push_back(frqPhaseBias);
Index: trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
===================================================================
--- trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h	(revision 10993)
+++ trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h	(revision 10994)
@@ -315,5 +315,5 @@
   CodeType CODETYPE_BDS_B2_Q;
   CodeType CODETYPE_BDS_B2_IQ;
-  CodeType CODETYPE_BDS_B1a_D; // B1a should be B1C
+  CodeType CODETYPE_BDS_B1a_D;
   CodeType CODETYPE_BDS_B1a_P;
   CodeType CODETYPE_BDS_B1a_DP;
@@ -398,6 +398,10 @@
     unsigned int SSRProviderID;
     unsigned int SSRSolutionID;
-    unsigned int DispersiveBiasConsistencyIndicator;
+    /* IGS-SSR and old RTCM-SSR only*/
+    unsigned int DispersiveBiasConsistencyIndicator; 
     unsigned int MWConsistencyIndicator;
+     /* new RTCM-SSR only*/
+    unsigned int SatelliteYawInformationIndicator;
+    unsigned int ExtendedPhaseBiasPropertyID;
     struct PhaseBiasSat {
       unsigned int ID; /* all */
@@ -407,7 +411,7 @@
       struct PhaseBiasEntry {
         CodeType Type;
-        unsigned int SignalIntegerIndicator;
-        unsigned int SignalsWideLaneIntegerIndicator;
-        unsigned int SignalDiscontinuityCounter;
+        unsigned int IntegerIndicator;
+        unsigned int DiscontinuityCounter;
+        unsigned int WidelaneGroupIndicator;
         float Bias; /* m */
       } Biases[CLOCKORBIT_NUMBIAS];
@@ -466,7 +470,7 @@
 #define E_GLONASS_SATELLITE_ID_OLD(a)                    ADDBITS( 5, a)                     /* DF384 (old RTCM) */
 #define E_GPS_IODE(a)                                    ADDBITS( 8, a)                     /* IDF012 DF071  */
-#define E_GLONASS_IOD(a)                                 ADDBITS( 8, a)                     /* DF239  */
+#define E_GLONASS_IOD(a)                                 ADDBITS( 8, a)                     /* DF392  */
 #define E_GALILEO_IOD(a)                                 ADDBITS(10, a)                     /* DF459  */
-#define E_SBAS_T0MOD(a)                                  ADDBITS( 9, (a/16))                 /* DF468  */
+#define E_SBAS_T0MOD(a)                                  ADDBITS( 9, (a/16))                /* DF468  */
 #define E_SBAS_IODCRC(a)                                 ADDBITS(24, a)                     /* DF469  */
 #define E_BDS_TOEMOD(a)                                  ADDBITS(10, (a/8))                 /* DF470  */
@@ -502,11 +506,10 @@
 #define E_YAW_INFO_INDICATOR(a)                         ADDBITS(1, a)                       /* DF486 (new RTCM) */
 #define E_MW_CONSISTENCY_INDICATOR(a)                   ADDBITS(1, a)                       /* DF487 (old RTCM), IDF033 */
-
 #define E_EXTENDED_PHASE_BIAS_ID(a)                     ADDBITS(4, a)                       /* DF+002 (new RTCM) */
 
-#define E_GLONASS_SATELLITE_ID(a)                       ADDBITS(6, a)                     /* DF+003 (new RTCM) */
+#define E_GLONASS_SATELLITE_ID(a)                       ADDBITS(6, a)                       /* DF+003 (new RTCM) */
 
 /* URA */
-#define E_SSR_URA(a)                                    ADDBITS(6, a)                      /* DF389, IDF034 */
+#define E_SSR_URA(a)                                    ADDBITS(6, a)                       /* DF389, IDF034 */
 
 /* Ionosphere */
@@ -717,4 +720,5 @@
 
 #define D_GPS_IODE(a)                                    GETSSRBITS(a,  8)                    /* DF071, DF467, IDF012 */
+#define D_GLONASS_IOD(a)                                 GETSSRBITS(a,  8)                    /* DF392  */
 #define D_GALILEO_IOD(a)                                 GETSSRBITS(a, 10)                    /* DF459 */
 
@@ -753,5 +757,5 @@
 #define D_MW_CONSISTENCY_INDICATOR(a)                    GETSSRBITS(a, 1)                    /* DF487, IDF033 */
 
-#define D_EXTENDED_PHASE_BIAS_ID(a)                      GETSSRBITS(4, a)                    /* DF+002 (new RTCM)*/
+#define D_EXTENDED_PHASE_BIAS_ID(a)                      GETSSRBITS(a, 4)                    /* DF+002 (new RTCM)*/
 
 #define D_GLONASS_SATELLITE_ID(a)                        GETSSRBITS(a,  6)                   /* DF+003 (new RTCM)*/
Index: trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.cpp
===================================================================
--- trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.cpp	(revision 10993)
+++ trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.cpp	(revision 10994)
@@ -266,7 +266,7 @@
         for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) {
           E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
-          E_INTEGER_INDICATOR(b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)
-          E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)
-          E_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].SignalDiscontinuityCounter)
+          E_INTEGER_INDICATOR(b->Sat[i].Biases[j].IntegerIndicator ? 1 : 0)
+          E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].WidelaneGroupIndicator)
+          E_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].DiscontinuityCounter)
           E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias)
         }
@@ -701,14 +701,14 @@
               for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) {
                 D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
-                D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
-                D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)
-                D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)
+                D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].IntegerIndicator)
+                D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].WidelaneGroupIndicator)
+                D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].DiscontinuityCounter)
                 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias)
 #ifdef BNC_DEBUG_SSR
             fprintf(stderr, "t%02d int %d wl %d disc %02d b %8.4f ",
                     pb->Sat[pos].Biases[j].Type,
-					pb->Sat[pos].Biases[j].SignalIntegerIndicator,
-					pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator,
-					pb->Sat[pos].Biases[j].SignalDiscontinuityCounter,
+					pb->Sat[pos].Biases[j].IntegerIndicator,
+					pb->Sat[pos].Biases[j].WidelaneGroupIndicator,
+					pb->Sat[pos].Biases[j].DiscontinuityCounter,
 					pb->Sat[pos].Biases[j].Bias);
 #endif
Index: trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp
===================================================================
--- trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp	(revision 10993)
+++ trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp	(revision 10994)
@@ -449,10 +449,7 @@
         for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) {
           E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
-          E_INTEGER_INDICATOR(
-              b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)
-          E_WIDE_LANE_INDICATOR(
-              b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)
-          E_DISCONTINUITY_COUNTER(
-              b->Sat[i].Biases[j].SignalDiscontinuityCounter)
+          E_INTEGER_INDICATOR(b->Sat[i].Biases[j].IntegerIndicator ? 1 : 0)
+          E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].WidelaneGroupIndicator)
+          E_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].DiscontinuityCounter)
           E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias)
         }
@@ -650,16 +647,16 @@
         for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) {
           D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
-          D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
+          D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].IntegerIndicator)
           D_WIDE_LANE_INDICATOR(
-              pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)
+              pb->Sat[pos].Biases[j].WidelaneGroupIndicator)
           D_DISCONTINUITY_COUNTER(
-              pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)
+              pb->Sat[pos].Biases[j].DiscontinuityCounter)
           D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias)
 #ifdef BNC_DEBUG_SSR
             fprintf(stderr, "t%02d int %d wl %d disc %d b %8.4f ",
                     pb->Sat[pos].Biases[j].Type,
-					pb->Sat[pos].Biases[j].SignalIntegerIndicator,
-					pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator,
-					pb->Sat[pos].Biases[j].SignalDiscontinuityCounter,
+					pb->Sat[pos].Biases[j].IntegerIndicator,
+					pb->Sat[pos].Biases[j].WidelaneGroupIndicator,
+					pb->Sat[pos].Biases[j].DiscontinuityCounter,
 					pb->Sat[pos].Biases[j].Bias);
 #endif
Index: trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp
===================================================================
--- trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp	(revision 10993)
+++ trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp	(revision 10994)
@@ -148,18 +148,5 @@
       E_NO_OF_SATELLITES(co->NumberOfSat[s])
       for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
-        switch (s) {
-          case CLOCKORBIT_SATGPS:
-          case CLOCKORBIT_SATGALILEO:
-          case CLOCKORBIT_SATSBAS:
-          case CLOCKORBIT_SATBDS:
-            E_GPS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATQZSS:
-            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATGLONASS:
-            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-        }
+        E_GPS_SATELLITE_ID(co->Sat[i].ID)
         E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)
         E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)
@@ -281,18 +268,5 @@
       E_NO_OF_SATELLITES(co->NumberOfSat[s])
       for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
-        switch (s) {
-          case CLOCKORBIT_SATGPS:
-            case CLOCKORBIT_SATGALILEO:
-            case CLOCKORBIT_SATSBAS:
-            case CLOCKORBIT_SATBDS:
-            E_GPS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATQZSS:
-            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATGLONASS:
-            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-        }
+        E_GPS_SATELLITE_ID(co->Sat[i].ID)
         E_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)
       }
@@ -321,18 +295,5 @@
       E_NO_OF_SATELLITES(co->NumberOfSat[s])
       for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) {
-        switch (s) {
-          case CLOCKORBIT_SATGPS:
-          case CLOCKORBIT_SATGALILEO:
-          case CLOCKORBIT_SATSBAS:
-          case CLOCKORBIT_SATBDS:
-            E_GPS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATQZSS:
-            E_QZSS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATGLONASS:
-            E_GLONASS_SATELLITE_ID(co->Sat[i].ID)
-            break;
-        }
+        E_GPS_SATELLITE_ID(co->Sat[i].ID)
         E_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))
       }
@@ -372,18 +333,5 @@
       E_NO_OF_SATELLITES(b->NumberOfSat[s])
       for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
-        switch (s) {
-          case CLOCKORBIT_SATGPS:
-          case CLOCKORBIT_SATGALILEO:
-          case CLOCKORBIT_SATSBAS:
-          case CLOCKORBIT_SATBDS:
-            E_GPS_SATELLITE_ID(b->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATQZSS:
-            E_QZSS_SATELLITE_ID(b->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATGLONASS:
-            E_GLONASS_SATELLITE_ID(b->Sat[i].ID)
-            break;
-        }
+        E_GPS_SATELLITE_ID(b->Sat[i].ID)
         E_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)
         for (j = 0; j < b->Sat[i].NumberOfCodeBiases; ++j) {
@@ -404,5 +352,36 @@
   STARTDATA
 
-  for (s = 0; s < CLOCKORBIT_SATNUM; ++s)       {
+  for (s = 0; s < CLOCKORBIT_SATNUM; ++s) {
+    /* The Widelane Signal Group Indicator shall be releated for every satellite and signal 
+       included in the corresponding Satellite Phase Bias Message in the same order. The 
+       Extended Satellite Phase Bias Message shall be sent before the corresponding 
+       Satellite Phase Bias Message */
+    if (b->NumberOfSat[s] && (type == PBEXTTYPE_AUTO || type == s + PBEXTTYPE_AUTO)) {
+      INITBLOCK
+      E_RTCM_MESSAGE_NUMBER(s + PBEXTTYPE_AUTO)
+      switch (s) {
+        case CLOCKORBIT_SATGPS:
+        case CLOCKORBIT_SATGALILEO:
+        case CLOCKORBIT_SATQZSS:
+        case CLOCKORBIT_SATSBAS:
+        case CLOCKORBIT_SATBDS:
+          E_GPS_EPOCH_TIME(b->EpochTime[s])
+          break;
+        case CLOCKORBIT_SATGLONASS:
+          E_GLONASS_EPOCH_TIME(b->EpochTime[s])
+          break;
+      }
+      E_SSR_UPDATE_INTERVAL(b->UpdateInterval)
+      E_SSR_IOD(b->SSRIOD)
+      E_SSR_PROVIDER_ID(b->SSRProviderID)
+      E_SSR_SOLUTION_ID(b->SSRSolutionID)
+      E_EXTENDED_PHASE_BIAS_ID(b->ExtendedPhaseBiasPropertyID)
+      for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
+        for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) {
+          E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].WidelaneGroupIndicator)
+        }
+      }
+      ENDBLOCK
+    }
     if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == s + PBTYPE_BASE)) {
       INITBLOCK
@@ -425,22 +404,9 @@
       E_SSR_PROVIDER_ID(b->SSRProviderID)
       E_SSR_SOLUTION_ID(b->SSRSolutionID)
-      E_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)
-      E_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)
+      E_YAW_INFO_INDICATOR(b->SatelliteYawInformationIndicator)
+      E_EXTENDED_PHASE_BIAS_ID(b->ExtendedPhaseBiasPropertyID)
       E_NO_OF_SATELLITES(b->NumberOfSat[s])
       for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) {
-        switch (s) {
-          case CLOCKORBIT_SATGPS:
-            case CLOCKORBIT_SATGALILEO:
-            case CLOCKORBIT_SATSBAS:
-            case CLOCKORBIT_SATBDS:
-            E_GPS_SATELLITE_ID(b->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATQZSS:
-            E_QZSS_SATELLITE_ID(b->Sat[i].ID)
-            break;
-          case CLOCKORBIT_SATGLONASS:
-            E_GLONASS_SATELLITE_ID(b->Sat[i].ID)
-            break;
-        }
+        E_GPS_SATELLITE_ID(b->Sat[i].ID)
         E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)
         E_YAW_ANGLE(b->Sat[i].YawAngle)
@@ -448,10 +414,6 @@
         for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) {
           E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)
-          E_INTEGER_INDICATOR(
-              b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)
-          E_WIDE_LANE_INDICATOR(
-              b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)
-          E_DISCONTINUITY_COUNTER(
-              b->Sat[i].Biases[j].SignalDiscontinuityCounter)
+          E_INTEGER_INDICATOR(b->Sat[i].Biases[j].IntegerIndicator ? 1 : 0)
+          E_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].DiscontinuityCounter)
           E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias)
         }
@@ -606,6 +568,6 @@
       D_SSR_PROVIDER_ID(pb->SSRProviderID)
       D_SSR_SOLUTION_ID(pb->SSRSolutionID)
-      D_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)
-      D_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)
+      D_YAW_INFO_INDICATOR(pb->SatelliteYawInformationIndicator)
+      D_EXTENDED_PHASE_BIAS_ID(pb->ExtendedPhaseBiasPropertyID)
       D_NO_OF_SATELLITES(nums)
 #ifdef BNC_DEBUG_SSR
@@ -616,18 +578,5 @@
 #endif
       for (i = 0; i < nums; ++i) {
-        switch (s) {
-          case CLOCKORBIT_SATGPS:
-          case CLOCKORBIT_SATGALILEO:
-          case CLOCKORBIT_SATSBAS:
-          case CLOCKORBIT_SATBDS:
-            D_GPS_SATELLITE_ID(id)
-            break;
-          case CLOCKORBIT_SATQZSS:
-            D_QZSS_SATELLITE_ID(id)
-            break;
-          case CLOCKORBIT_SATGLONASS:
-            D_GLONASS_SATELLITE_ID(id)
-            break;
-        }
+        D_GPS_SATELLITE_ID(id)
         for (pos = satoffset[s];
             pos < satoffset[s] + pb->NumberOfSat[s] && pb->Sat[pos].ID != id;
@@ -649,16 +598,14 @@
         for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) {
           D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)
-          D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)
-          D_WIDE_LANE_INDICATOR(
-              pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)
-          D_DISCONTINUITY_COUNTER(
-              pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)
+          D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].IntegerIndicator)
+          D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].WidelaneGroupIndicator)
+          D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].DiscontinuityCounter)
           D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias)
 #ifdef BNC_DEBUG_SSR
             fprintf(stderr, "t%02d int %d wl %d disc %d b %8.4f ",
                     pb->Sat[pos].Biases[j].Type,
-					pb->Sat[pos].Biases[j].SignalIntegerIndicator,
-					pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator,
-					pb->Sat[pos].Biases[j].SignalDiscontinuityCounter,
+					pb->Sat[pos].Biases[j].IntegerIndicator,
+					pb->Sat[pos].Biases[j].WidelaneGroupIndicator,
+					pb->Sat[pos].Biases[j].DiscontinuityCounter,
 					pb->Sat[pos].Biases[j].Bias);
 #endif
@@ -707,18 +654,5 @@
 #endif
           for (i = 0; i < nums; ++i) {
-            switch (s) {
-              case CLOCKORBIT_SATGPS:
-              case CLOCKORBIT_SATGALILEO:
-              case CLOCKORBIT_SATSBAS:
-              case CLOCKORBIT_SATBDS:
-                D_GPS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATQZSS:
-                D_QZSS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATGLONASS:
-                D_GLONASS_SATELLITE_ID(id)
-                break;
-            }
+            D_GPS_SATELLITE_ID(id)
             for (pos = satoffset[s];
                 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
@@ -733,9 +667,9 @@
             switch (s) {
               case CLOCKORBIT_SATGPS:
-                case CLOCKORBIT_SATQZSS:
-                  D_GPS_IODE(co->Sat[pos].IOD)
+              case CLOCKORBIT_SATQZSS:
+                D_GPS_IODE(co->Sat[pos].IOD)
                 break;
               case CLOCKORBIT_SATGLONASS:
-                D_GPS_IODE(co->Sat[pos].IOD)
+                D_GLONASS_IOD(co->Sat[pos].IOD)
                 break;
               case CLOCKORBIT_SATGALILEO:
@@ -796,18 +730,5 @@
 #endif
           for (i = 0; i < nums; ++i) {
-            switch (s) {
-              case CLOCKORBIT_SATGPS:
-                case CLOCKORBIT_SATGALILEO:
-                case CLOCKORBIT_SATSBAS:
-                case CLOCKORBIT_SATBDS:
-                D_GPS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATQZSS:
-                D_QZSS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATGLONASS:
-                D_GLONASS_SATELLITE_ID(id)
-                break;
-            }
+            D_GPS_SATELLITE_ID(id)
             for (pos = satoffset[s];
                 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
@@ -861,18 +782,5 @@
 #endif
           for (i = 0; i < nums; ++i) {
-            switch (s) {
-              case CLOCKORBIT_SATGPS:
-              case CLOCKORBIT_SATGALILEO:
-              case CLOCKORBIT_SATSBAS:
-              case CLOCKORBIT_SATBDS:
-                D_GPS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATQZSS:
-                D_QZSS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATGLONASS:
-                D_GLONASS_SATELLITE_ID(id)
-                break;
-            }
+            D_GPS_SATELLITE_ID(id)
             for (pos = satoffset[s];
                 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
@@ -887,9 +795,9 @@
             switch (s) {
               case CLOCKORBIT_SATGPS:
-                case CLOCKORBIT_SATQZSS:
-                  D_GPS_IODE(co->Sat[pos].IOD)
+              case CLOCKORBIT_SATQZSS:
+                D_GPS_IODE(co->Sat[pos].IOD)
                 break;
               case CLOCKORBIT_SATGLONASS:
-                D_GPS_IODE(co->Sat[pos].IOD)
+                D_GLONASS_IOD(co->Sat[pos].IOD)
                 break;
               case CLOCKORBIT_SATGALILEO:
@@ -953,18 +861,5 @@
 #endif
           for (i = 0; i < nums; ++i) {
-            switch (s) {
-              case CLOCKORBIT_SATGPS:
-              case CLOCKORBIT_SATGALILEO:
-              case CLOCKORBIT_SATSBAS:
-              case CLOCKORBIT_SATBDS:
-                D_GPS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATQZSS:
-                D_QZSS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATGLONASS:
-                D_GLONASS_SATELLITE_ID(id)
-                break;
-            }
+            D_GPS_SATELLITE_ID(id)
             for (pos = satoffset[s];
                 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
@@ -1012,18 +907,5 @@
 #endif
           for (i = 0; i < nums; ++i) {
-            switch (s) {
-              case CLOCKORBIT_SATGPS:
-              case CLOCKORBIT_SATGALILEO:
-              case CLOCKORBIT_SATSBAS:
-              case CLOCKORBIT_SATBDS:
-                D_GPS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATQZSS:
-                D_QZSS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATGLONASS:
-                D_GLONASS_SATELLITE_ID(id)
-                break;
-            }
+            D_GPS_SATELLITE_ID(id)
             for (pos = satoffset[s];
                 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id;
@@ -1070,18 +952,5 @@
 #endif
           for (i = 0; i < nums; ++i) {
-            switch (s) {
-              case CLOCKORBIT_SATGPS:
-              case CLOCKORBIT_SATGALILEO:
-              case CLOCKORBIT_SATSBAS:
-              case CLOCKORBIT_SATBDS:
-                D_GPS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATQZSS:
-                D_QZSS_SATELLITE_ID(id)
-                break;
-              case CLOCKORBIT_SATGLONASS:
-                D_GLONASS_SATELLITE_ID(id)
-                break;
-            }
+            D_GPS_SATELLITE_ID(id)
             for (pos = satoffset[s];
                 pos < satoffset[s] + b->NumberOfSat[s] && b->Sat[pos].ID != id;
Index: trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.h
===================================================================
--- trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.h	(revision 10993)
+++ trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.h	(revision 10994)
@@ -224,15 +224,9 @@
   SsrCorr::CodeType rnxTypeToCodeType(char system, std::string type);
 
-  size_t MakeClockOrbit(const struct ClockOrbit *co, ClockOrbitType type,
-      int moremessagesfollow, char *buffer, size_t size);
-  size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type,
-      int moremessagesfollow, char *buffer, size_t size);
-  size_t MakePhaseBias(const struct PhaseBias *b, PhaseBiasType type,
-      int moremessagesfollow, char *buffer, size_t size);
-  size_t MakeVTEC(const struct VTEC *v, int moremessagesfollow, char *buffer,
-      size_t size);
-  enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b,
-      struct VTEC *v, struct PhaseBias *pb, const char *buffer, size_t size,
-      int *bytesused);
+  size_t MakeClockOrbit(const struct ClockOrbit *co, ClockOrbitType type, int moremessagesfollow, char *buffer, size_t size);
+  size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type, int moremessagesfollow, char *buffer, size_t size);
+  size_t MakePhaseBias(const struct PhaseBias *b, PhaseBiasType type, int moremessagesfollow, char *buffer, size_t size);
+  size_t MakeVTEC(const struct VTEC *v, int moremessagesfollow, char *buffer, size_t size);
+  enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b, struct VTEC *v, struct PhaseBias *pb, const char *buffer, size_t size, int *bytesused);
  };
 
Index: trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 10993)
+++ trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 10994)
@@ -823,7 +823,7 @@
                         phasebiasSat->Biases[ii].Type = type;
                         phasebiasSat->Biases[ii].Bias = pbSig.bias;
-                        phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-                        phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-                        phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+                        phasebiasSat->Biases[ii].IntegerIndicator = pbSig.integerIndicator;
+                        phasebiasSat->Biases[ii].WidelaneGroupIndicator = pbSig.wlIndicator;
+                        phasebiasSat->Biases[ii].DiscontinuityCounter = pbSig.discontinuityCounter;
                         if (_bsx) {
                             QString obsCode = 'L' + pbSig.type;
