Index: /trunk/BNC/src/RTCM/RTCM2Decoder.cpp
===================================================================
--- /trunk/BNC/src/RTCM/RTCM2Decoder.cpp	(revision 6193)
+++ /trunk/BNC/src/RTCM/RTCM2Decoder.cpp	(revision 6194)
@@ -141,6 +141,7 @@
 	  }		        
 	  else {
-            obs._prn.set('R', _ObsBlock.PRN[iSat]);
+            obs._prn.set('G', _ObsBlock.PRN[iSat]);
 	  }		        
+          char sys = obs._prn.system();
           obs._time.set(epochWeek, epochSecs);
           t_frqObs* frqObs1C = new t_frqObs;
@@ -151,5 +152,5 @@
 
           t_frqObs* frqObs1P = new t_frqObs;
-          frqObs1P->_rnxType2ch  = "1P";
+          frqObs1P->_rnxType2ch  = (sys == 'G') ? "1W" : "1P";
           frqObs1P->_codeValid   = true;
           frqObs1P->_code        = _ObsBlock.rng_P1[iSat];
@@ -161,5 +162,5 @@
 
           t_frqObs* frqObs2P = new t_frqObs;
-          frqObs2P->_rnxType2ch  = "2P";
+          frqObs2P->_rnxType2ch  = (sys == 'G') ? "2W" : "2P";
           frqObs2P->_codeValid   = true;
           frqObs2P->_code        = _ObsBlock.rng_P2[iSat];
@@ -281,9 +282,12 @@
 
     QString prn;
+    char    sys;
     if (corr->PRN < 200) {
-      prn = 'G' + QString("%1").arg(corr->PRN, 2, 10, QChar('0'));
+      sys = 'G';
+      prn = sys + QString("%1").arg(corr->PRN, 2, 10, QChar('0'));
     }
     else {
-      prn = 'R' + QString("%1").arg(corr->PRN - 200, 2, 10, QChar('0'));
+      sys = 'R';
+      prn = sys + QString("%1").arg(corr->PRN - 200, 2, 10, QChar('0'));
     }
 
@@ -304,9 +308,9 @@
 
     t_frqObs* frqObs1P = new t_frqObs;
-    frqObs1P->_rnxType2ch  = "1P";
+    frqObs1P->_rnxType2ch  = (sys == 'G') ? "1W" : "1P";
     new_obs->_obs.push_back(frqObs1P);
 
     t_frqObs* frqObs2P = new t_frqObs;
-    frqObs2P->_rnxType2ch  = "2P";
+    frqObs2P->_rnxType2ch  = (sys == 'G') ? "2W" : "2P";
     new_obs->_obs.push_back(frqObs2P);
 
