Index: trunk/BNC/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 553)
+++ trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 554)
@@ -111,11 +111,15 @@
           for (int ii = 0; ii < _Parser.Data.numsats; ii++) {
             Observation* obs = new Observation();
-            if (_Parser.Data.satellites[ii] <= PRN_GPS_END) {
+            if      (_Parser.Data.satellites[ii] <= PRN_GPS_END) {
               obs->satSys = 'G';
               obs->satNum = _Parser.Data.satellites[ii];
 	    }
-	    else {
+	    else if (_Parser.Data.satellites[ii] <= PRN_GLONASS_END) {
               obs->satSys = 'R';
               obs->satNum = _Parser.Data.satellites[ii] - PRN_GLONASS_START + 1;
+	    }
+	    else {
+              obs->satSys = 'S';
+              obs->satNum = _Parser.Data.satellites[ii] - PRN_WAAS_START + 20;
 	    }
             obs->GPSWeek  = _Parser.Data.week;
Index: trunk/BNC/bncrinex.cpp
===================================================================
--- trunk/BNC/bncrinex.cpp	(revision 553)
+++ trunk/BNC/bncrinex.cpp	(revision 554)
@@ -374,4 +374,5 @@
           _out << "G    6 C1C L1C S1C C2P L2P S2P                              SYS / # / OBS TYPES" << endl;
           _out << "R    6 C1C L1C S1C C2P L2P S2P                              SYS / # / OBS TYPES" << endl;
+          _out << "S    6 C1C L1C S1C C2P L2P S2P                              SYS / # / OBS TYPES" << endl;
         }
         else { 
@@ -433,4 +434,5 @@
       _out << "G    6 C1C L1C S1C C2P L2P S2P                              SYS / # / OBS TYPES" << endl;
       _out << "R    6 C1C L1C S1C C2P L2P S2P                              SYS / # / OBS TYPES" << endl;
+      _out << "S    6 C1C L1C S1C C2P L2P S2P                              SYS / # / OBS TYPES" << endl;
 
     }
