Index: trunk/BNC/src/PPP/pppInclude.h
===================================================================
--- trunk/BNC/src/PPP/pppInclude.h	(revision 6020)
+++ trunk/BNC/src/PPP/pppInclude.h	(revision 6021)
@@ -131,23 +131,68 @@
 
   static bool includesPhase(type tt) {
-    if (tt == l1 || tt == l2 || tt == lIF || tt == MW || tt == CL) return true;
+    switch (tt) {
+    case l1:
+    case l2:
+    case lIF:
+    case MW:
+    case CL:
+      return true;
+    case c1:
+    case c2:
+    case cIF:
+      return false;
+    case dummy: case maxLc: return false;
+    }
     return false;
   }
 
   static bool includesCode(type tt) {
-    if (tt == c1 || tt == c2 || tt == cIF || tt == MW || tt == CL) return true;
+    switch (tt) {
+    case c1:
+    case c2:
+    case cIF:
+    case MW:
+    case CL:
+      return true;
+    case l1:
+    case l2:
+    case lIF:
+      return false;
+    case dummy: case maxLc: return false;
+    }
     return false;
   }
 
+  static t_frequency::type toFreq(char sys, type tt) {
+    switch (tt) {
+    case l1: case c1:
+      if      (sys == 'G') return t_frequency::G1;
+      else if (sys == 'R') return t_frequency::R1;
+      else if (sys == 'E') return t_frequency::E1;
+      else                 return t_frequency::dummy;
+    case l2: case c2:
+      if      (sys == 'G') return t_frequency::G2;
+      else if (sys == 'R') return t_frequency::R2;
+      else                 return t_frequency::dummy;
+    case lIF: case cIF: case MW: case CL: 
+      return t_frequency::dummy;
+    case dummy: case maxLc: return t_frequency::dummy;
+    }
+    return t_frequency::dummy;
+  }
+
   static std::string toString(type tt) {
-    if      (tt == l1)  return "l1";
-    else if (tt == l2)  return "l2";
-    else if (tt == c1)  return "c1";
-    else if (tt == c2)  return "c2";
-    else if (tt == lIF) return "lIF";
-    else if (tt == cIF) return "cIF";
-    else if (tt == MW)  return "MW";
-    else if (tt == CL)  return "CL";
-    return std::string();
+    switch (tt) {
+    case l1:  return "l1";
+    case l2:  return "l2";
+    case lIF: return "lIF";
+    case MW:  return "MW";
+    case CL:  return "CL";
+    case c1:  return "c1";
+    case c2:  return "c2";
+    case cIF: return "cIF";
+    case dummy: case maxLc: return "";
+    }
+    return "";
   }
 };
Index: trunk/BNC/src/PPP/pppParlist.cpp
===================================================================
--- trunk/BNC/src/PPP/pppParlist.cpp	(revision 6020)
+++ trunk/BNC/src/PPP/pppParlist.cpp	(revision 6021)
@@ -162,11 +162,12 @@
       }
       else {
-        ColumnVector coeff(4);
-        obs->lc(tLC, 0.0, 0.0, 0.0, 0.0, &coeff);
+        map<t_frequency::type, double> codeCoeff;
+        map<t_frequency::type, double> phaseCoeff;
+        obs->lcCoeff(tLC, codeCoeff, phaseCoeff);
         if      (_tLC == t_lc::l1) {
-          return obs->lambda(t_lc::l1) * coeff(1); 
+          return obs->lambda(t_lc::l1) * phaseCoeff[t_lc::toFreq(obs->prn().system(),t_lc::l1)]; 
         }
         else if (_tLC == t_lc::l2) {
-          return obs->lambda(t_lc::l2) * coeff(2); 
+          return obs->lambda(t_lc::l2) * phaseCoeff[t_lc::toFreq(obs->prn().system(),t_lc::l2)]; 
         }
       }
Index: trunk/BNC/src/PPP/pppSatObs.h
===================================================================
--- trunk/BNC/src/PPP/pppSatObs.h	(revision 6020)
+++ trunk/BNC/src/PPP/pppSatObs.h	(revision 6021)
@@ -30,4 +30,7 @@
   bool                modelSet() const {return _model._set;}
   void                printModel() const;
+  void                lcCoeff(t_lc::type tLC, 
+                              std::map<t_frequency::type, double>& codeCoeff,
+                              std::map<t_frequency::type, double>& phaseCoeff) const;
   double              lc(t_lc::type tLC); 
   double              lambda(t_lc::type tLC) const;
