Index: /trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppClient.cpp	(revision 10030)
+++ /trunk/BNC/src/PPP/pppClient.cpp	(revision 10031)
@@ -474,8 +474,14 @@
     bool epochReProcessing = false;
     _numEpoProcessing = 0;
-    _historicalRefSats.clear();
+    if (!_historicalRefSats.isEmpty()) {
+      _historicalRefSats.clear();
+    }
 
     do {
-      _numEpoProcessing++;
+      if ((_numEpoProcessing++) > 30) {
+        LOG << "t_pppClient::processEpoch:  _numEpoProcessing > 30" << endl;
+        return finish(failure,12);
+      }
+
       if (_obsPool->refSatChanged()) {
         if(_filter->datumTransformation(_refSatMap) != success) {
@@ -488,4 +494,5 @@
         }
       }
+
       // Prepare Observations of the Rover
       // ---------------------------------
@@ -538,5 +545,5 @@
       LOG << "PUT EPOCH t_pppClient::processEpoch " << _epoTimeRover.timestr().c_str() << endl;
 #endif
-      
+
       // Process Epoch in Filter
       // -----------------------
@@ -552,7 +559,7 @@
         LOG << "pppClient: _obsPool->refSatChangeRequired() " << endl;
         epochReProcessing = true;
-#ifdef BNC_DEBUG_PPP        
+#ifdef BNC_DEBUG_PPP
         LOG <<  "DELETE EPOCH" << endl;
-#endif        
+#endif
         _obsPool->deleteLastEpoch();
         _filter->restoreState(0);
@@ -585,5 +592,5 @@
     return finish(failure,11);
   }
-  return finish(success,12);
+  return finish(success,0);
 }
 
Index: /trunk/BNC/src/PPP/pppClient.h
===================================================================
--- /trunk/BNC/src/PPP/pppClient.h	(revision 10030)
+++ /trunk/BNC/src/PPP/pppClient.h	(revision 10031)
@@ -38,7 +38,4 @@
   const bncAntex*     antex() const {return _antex;}
   const t_pppStation* staRover() const {return _staRover;}
-  double              offGlo() const {return _offGlo;}
-  double              offGal() const {return _offGal;}
-  double              offBds() const {return _offBds;}
 
   std::ostringstream& log() {return *_log;}
@@ -77,7 +74,4 @@
   bncAntex*                 _antex;
   t_pppFilter*              _filter;
-  double                    _offGlo;
-  double                    _offGal;
-  double                    _offBds;
   std::vector<t_pppSatObs*> _obsRover;
   QMap<char, t_pppRefSat*>  _refSatMap;
Index: /trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppFilter.cpp	(revision 10030)
+++ /trunk/BNC/src/PPP/pppFilter.cpp	(revision 10031)
@@ -95,5 +95,5 @@
   // Status Vector, Variance-Covariance Matrix
   // -----------------------------------------
-  ColumnVector xFltOld = _xFlt;
+  ColumnVector    xFltOld = _xFlt;
   SymmetricMatrix QFltOld = _QFlt;
   setStateVectorAndVarCovMatrix(xFltOld, QFltOld, setNeuNoiseToZero);
@@ -467,19 +467,17 @@
         // -----------------------
         else {
-          ColumnVector AA(nPar);
-          for (unsigned iPar = 0; iPar < nPar; iPar++) {
-            const t_pppParam *par = params[iPar];
-            AA[iPar] = par->partial(_epoTime, obs, tLC, refPrn);
-          }
-          double ll = obs->obsValue(tLC) - obs->cmpValue(tLC)
-                    - DotProduct(_x0, AA);
-          double vv = DotProduct(AA, _xFlt) - ll;
-          if (fabs(vv) > SLIP) {
-            LOG << epoTimeStr << " cycle slip detected " << t_lc::toString(tLC)
-                << ' ' << obs->prn().toString() << ' ' << setw(8)
-                << setprecision(4) << vv << endl;
-            if (preProcessing) {
-              _obsPool->setRefSatChangeRequired(sys, true);
-            } else {
+          if (!preProcessing) {
+            ColumnVector AA(nPar);
+            for (unsigned iPar = 0; iPar < nPar; iPar++) {
+              const t_pppParam *par = params[iPar];
+              AA[iPar] = par->partial(_epoTime, obs, tLC, refPrn);
+            }
+            double ll = obs->obsValue(tLC) - obs->cmpValue(tLC)
+                      - DotProduct(_x0, AA);
+            double vv = DotProduct(AA, _xFlt) - ll;
+            if (fabs(vv) > SLIP) {
+              LOG << epoTimeStr << " cycle slip detected " << t_lc::toString(tLC)
+                  << ' ' << obs->prn().toString() << ' ' << setw(8)
+                  << setprecision(4) << vv << endl;
               resetAmb(obs->prn(), obsVector, tLC);
             }
@@ -682,5 +680,5 @@
 #ifdef BNC_DEBUG_PPP
     LOG << "GET LAST EPOCH" << endl;
-#endif    
+#endif
   if (!epoch) {
     LOG << "t_pppFilter::datumTransformation: !lastEpoch" << endl;
@@ -688,5 +686,5 @@
   }
   _epoTime = epoch->epoTime();
- 
+
   LOG.setf(ios::fixed);
   LOG  << "DATUM TRANSFORMATION in Epoch  "<<  string(_epoTime) << endl;
@@ -785,5 +783,5 @@
   }
 
-  ColumnVector xFltOld = _xFlt;
+  ColumnVector    xFltOld = _xFlt;
   SymmetricMatrix QFltOld = _QFlt;
 
@@ -821,7 +819,7 @@
   // =================
   _datumTrafo->switchAA();
-  
+
   _obsPool->putEpoch(_epoTime, allObs, pseudoObsIono, refSatMap);
-#ifdef BNC_DEBUG_PPP  
+#ifdef BNC_DEBUG_PPP
   LOG << "PUT EPOCH t_pppFilter::datumTransformation " << _epoTime.timestr().c_str() << endl;
 #endif
Index: /trunk/BNC/src/PPP/pppParlist.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppParlist.cpp	(revision 10030)
+++ /trunk/BNC/src/PPP/pppParlist.cpp	(revision 10031)
@@ -506,5 +506,5 @@
           (!par->lastObsTime().valid() || (epoTime - par->lastObsTime() > 0.0))) {
 #ifdef BNC_DEBUG_PPP
-//        LOG << "remove1 " << par->toString() << std::endl;
+        //LOG << "remove1 " << par->toString() << std::endl;
 #endif
         lostSats.append(par->prn());
@@ -519,5 +519,5 @@
                 par->type() == t_pppParam::pBiasG2) && !usedSystems().contains('G')) {
 #ifdef BNC_DEBUG_PPP
-        //LOG << "remove1 " << par->toString() << std::endl;
+       //LOG << "remove1 " << par->toString() << std::endl;
 #endif
         delete par;
@@ -529,5 +529,5 @@
                 par->type() == t_pppParam::pBiasR2) && !usedSystems().contains('R')) {
 #ifdef BNC_DEBUG_PPP
-//        LOG << "remove1 " << par->toString() << std::endl;
+        //LOG << "remove1 " << par->toString() << std::endl;
 #endif
         delete par;
@@ -539,5 +539,5 @@
                 par->type() == t_pppParam::pBiasE2) && !usedSystems().contains('E')) {
 #ifdef BNC_DEBUG_PPP
-//        LOG << "remove1 " << par->toString() << std::endl;
+        //LOG << "remove1 " << par->toString() << std::endl;
 #endif
         delete par;
@@ -549,5 +549,5 @@
                 par->type() == t_pppParam::pBiasC2) && !usedSystems().contains('C')) {
 #ifdef BNC_DEBUG_PPP
-//        LOG << "remove1 " << par->toString() << std::endl;
+        //LOG << "remove1 " << par->toString() << std::endl;
 #endif
         delete par;
@@ -566,5 +566,5 @@
           (lostSats.contains(par->prn()) || (epoTime - par->lastObsTime() > 0.0))) {
 #ifdef BNC_DEBUG_PPP
-        //LOG << "remove1 " << par->toString() << std::endl;
+       //LOG << "remove1 " << par->toString() << std::endl;
 #endif
         delete par;
@@ -741,5 +741,5 @@
     else {
 #ifdef BNC_DEBUG_PPP
-//      LOG << "push_back  parReq " << parReq->toString() << std::endl;
+      //LOG << "push_back  parReq " << parReq->toString() << std::endl;
 #endif
       _params.push_back(parReq);
