Index: trunk/BNC/src/rinex/rnxobsfile.cpp
===================================================================
--- trunk/BNC/src/rinex/rnxobsfile.cpp	(revision 6585)
+++ trunk/BNC/src/rinex/rnxobsfile.cpp	(revision 6586)
@@ -1061,10 +1061,24 @@
       QString typeV3 = header.obsType(sys, iTypeV3);
       QMapIterator<QString, t_rnxObs> itObs(rnxSat.obs);
+
+      // Exact match
+      // -----------
       while (itObs.hasNext()) {
         itObs.next();
         const QString&  type   = itObs.key();
         const t_rnxObs& rnxObs = itObs.value();
-        if ( typeV3 == type2to3(sys, type) || 
-             (typeV3 == type2to3(sys, type).left(2) && rnxObs.value != 0.0) ) {
+        if (typeV3 == type2to3(sys, type) && rnxObs.value != 0.0) {
+          hlp[iTypeV3] = &itObs.value();
+        }
+      }
+
+      // Non-Exact match
+      // ---------------
+      itObs.toFront();
+      while (itObs.hasNext()) {
+        itObs.next();
+        const QString&  type   = itObs.key();
+        const t_rnxObs& rnxObs = itObs.value();
+        if (hlp[iTypeV3] == 0 && typeV3 == type2to3(sys, type).left(2) && rnxObs.value != 0.0) {
           hlp[iTypeV3] = &itObs.value();
         }
