Index: trunk/BNC/src/RTCM/GPSDecoder.cpp
===================================================================
--- trunk/BNC/src/RTCM/GPSDecoder.cpp	(revision 4404)
+++ trunk/BNC/src/RTCM/GPSDecoder.cpp	(revision 4405)
@@ -93,5 +93,5 @@
 //////////////////////////////////////////////////////////////////////////////
 void t_obs::setMeasdata(const QString& rnxStr, float rnxVers, double value) {
-  int ie = iEntry(rnxStr, rnxVers);
+  int ie = iEntry(rnxStr, rnxVers, false);
   if (ie != -1) {
     _measdata[ie] = value;
@@ -102,5 +102,5 @@
 //////////////////////////////////////////////////////////////////////////////
 double t_obs::measdata(const QString& rnxStr, float rnxVers) const {
-  int ie = iEntry(rnxStr, rnxVers);
+  int ie = iEntry(rnxStr, rnxVers, true);
   if (ie != -1) {
     return _measdata[ie];
@@ -113,5 +113,5 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
-int t_obs::iEntry(const QString& rnxStr, float rnxVers) const {
+int t_obs::iEntry(const QString& rnxStr, float rnxVers, bool nonEmpty) const {
   if (rnxVers >= 3.0) {
     return iEntryV3(rnxStr);
@@ -127,5 +127,7 @@
     QString hlpStr = rnxStr + chars[ii];
     int ie = iEntryV3(hlpStr.trimmed());
-    if (ie != -1) return ie;
+    if (ie != -1 && (!nonEmpty || _measdata[ie] != 0.0)) {
+      return ie;
+    }
   }
 
Index: trunk/BNC/src/RTCM/GPSDecoder.h
===================================================================
--- trunk/BNC/src/RTCM/GPSDecoder.h	(revision 4404)
+++ trunk/BNC/src/RTCM/GPSDecoder.h	(revision 4405)
@@ -81,5 +81,5 @@
 
  private:
-  int iEntry(const QString& rnxStr, float rnxVer) const;
+  int iEntry(const QString& rnxStr, float rnxVer, bool nonEmpty) const;
   int iEntryV3(const QString& rnxStr) const;
 };
