Index: trunk/BNC/src/rinex/reqcanalyze.cpp
===================================================================
--- trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 8563)
+++ trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 8564)
@@ -382,21 +382,24 @@
       t_frequency::type fB = t_frequency::dummy;
       char sys             = satObs._prn.system();
-      for (int iSig = 1; iSig < _signalTypes[sys].size(); iSig++) {
-        std::string frqType1, frqType2;
-        if (_signalTypes.find(sys) != _signalTypes.end()) {
-          frqType1.push_back(sys);
-          frqType1.push_back(_signalTypes[sys][0]);
-          frqType2.push_back(sys);
-          frqType2.push_back(_signalTypes[sys][iSig]);
-          if      (frqObs->_rnxType2ch[0] == frqType1[1]) {
-            fA = t_frequency::toInt(frqType1);
-            fB = t_frequency::toInt(frqType2);
-          }
-          else if (frqObs->_rnxType2ch[0] == frqType2[1]) {
-            fA = t_frequency::toInt(frqType2);
-            fB = t_frequency::toInt(frqType1);
+      if (_signalTypes.find(sys) != _signalTypes.end()) {
+        for (int iSig = 0; iSig < _signalTypes[sys].size(); iSig++) {
+          if (frqObs->_rnxType2ch[0] == _signalTypes[sys][iSig]) {
+            string frqType; frqType.push_back(sys); frqType.push_back(_signalTypes[sys][iSig]);
+            fA = t_frequency::toInt(frqType);
+            break;
+          }
+        }
+        if (fA != t_frequency::dummy) {
+          for (int iSig = 0; iSig < _signalTypes[sys].size(); iSig++) {
+            string frqType; frqType.push_back(sys); frqType.push_back(_signalTypes[sys][iSig]);
+            t_frequency::type fHlp = t_frequency::toInt(frqType);
+            if (fA != fHlp) {
+              fB = fHlp;
+              break;
+            }
           }
         }
         if (fA != t_frequency::dummy && fB != t_frequency::dummy) {
+
           double f_a = t_CST::freq(fA, qcSat._slotNum);
           double f_b = t_CST::freq(fB, qcSat._slotNum);
