Index: trunk/BNC/src/pppRun.cpp
===================================================================
--- trunk/BNC/src/pppRun.cpp	(revision 6477)
+++ trunk/BNC/src/pppRun.cpp	(revision 6478)
@@ -102,4 +102,7 @@
     connect(BNC_CORE, SIGNAL(newClkCorrections(QList<t_clkCorr>)),
             this, SLOT(slotNewClkCorrections(QList<t_clkCorr>)),conType);
+
+    connect(BNC_CORE, SIGNAL(newCodeBiases(QList<t_satCodeBias>)),
+            this, SLOT(slotNewCodeBiases(QList<t_satCodeBias>)),conType);
   }
   else {
@@ -320,4 +323,24 @@
 // 
 ////////////////////////////////////////////////////////////////////////////
+void t_pppRun::slotNewCodeBiases(QList<t_satCodeBias> codeBiases) {
+  if (codeBiases.size() == 0) {
+    return;
+  }
+
+  if (_opt->_realTime) {
+    if (_opt->_corrMount.empty() || _opt->_corrMount != codeBiases[0]._staID) {
+      return;
+    }
+  }
+  vector<t_satCodeBias*> biases;
+  for (int ii = 0; ii < codeBiases.size(); ii++) {
+    biases.push_back(new t_satCodeBias(codeBiases[ii]));
+  }
+
+  _pppClient->putCodeBiases(biases); 
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
 void t_pppRun::processFiles() {
 
@@ -339,4 +362,6 @@
     connect(_corrFile, SIGNAL(newClkCorrections(QList<t_clkCorr>)),
             this, SLOT(slotNewClkCorrections(QList<t_clkCorr>)));
+    connect(_corrFile, SIGNAL(newCodeBiases(QList<t_satCodeBias>)),
+            this, SLOT(slotNewCodeBiases(QList<t_satCodeBias>)));
   }
 
Index: trunk/BNC/src/pppRun.h
===================================================================
--- trunk/BNC/src/pppRun.h	(revision 6477)
+++ trunk/BNC/src/pppRun.h	(revision 6478)
@@ -40,4 +40,5 @@
   void slotNewOrbCorrections(QList<t_orbCorr> orbCorr);
   void slotNewClkCorrections(QList<t_clkCorr> clkCorr);
+  void slotNewCodeBiases(QList<t_satCodeBias> codeBiases);
   void slotNewObs(QByteArray staID, QList<t_satObs> obsList);
   void slotSetSpeed(int speed);
Index: trunk/BNC/src/rinex/corrfile.cpp
===================================================================
--- trunk/BNC/src/rinex/corrfile.cpp	(revision 6477)
+++ trunk/BNC/src/rinex/corrfile.cpp	(revision 6478)
@@ -64,4 +64,5 @@
   _orbCorr.clear();
   _clkCorr.clear();
+  _codeBiases.clear();
 
   while (!stopRead(tt) && _stream.good()) {
@@ -79,4 +80,8 @@
     _clkCorr.clear();
   }
+  if (_codeBiases.size() > 0) {
+    emit newCodeBiases(_codeBiases);
+    _codeBiases.clear();
+  }
 }
 
Index: trunk/BNC/src/rinex/corrfile.h
===================================================================
--- trunk/BNC/src/rinex/corrfile.h	(revision 6477)
+++ trunk/BNC/src/rinex/corrfile.h	(revision 6478)
@@ -44,11 +44,13 @@
   void newOrbCorrections(QList<t_orbCorr>);
   void newClkCorrections(QList<t_clkCorr>);
+  void newCodeBiases(QList<t_satCodeBias>);
 
  private:
   bool stopRead(const bncTime& tt);
-  std::fstream       _stream;
-  QList<t_orbCorr>   _orbCorr;
-  QList<t_clkCorr>   _clkCorr;
-  QMap<QString, int> _corrIODs;
+  std::fstream         _stream;
+  QList<t_orbCorr>     _orbCorr;
+  QList<t_clkCorr>     _clkCorr;
+  QList<t_satCodeBias> _codeBiases;
+  QMap<QString, int>   _corrIODs;
 };
 
