Index: trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- trunk/BNC/src/PPP/pppClient.cpp	(revision 10258)
+++ trunk/BNC/src/PPP/pppClient.cpp	(revision 10259)
@@ -49,4 +49,5 @@
 //////////////////////////////////////////////////////////////////////////////
 t_pppClient::t_pppClient(const t_pppOptions* opt) {
+  _running = true;
   _output   = 0;
   _opt      = new t_pppOptions(*opt);
@@ -75,4 +76,5 @@
 //////////////////////////////////////////////////////////////////////////////
 t_pppClient::~t_pppClient() {
+  _running = false;
   delete _log;
   delete _opt;
@@ -279,5 +281,5 @@
   }
 
-  while (true) {
+  while (_running) {
     Matrix BB(numBancroft, 4);
     int iObs = -1;
@@ -319,5 +321,5 @@
     // Check Blunders
     // --------------
-    const double BLUNDER = 200.0;
+    const double BLUNDER = 100.0;
     double   maxRes      = 0.0;
     unsigned maxResIndex = 0;
@@ -402,6 +404,6 @@
         offGlo = 0.0;
       }
-      if (fabs(maxRes) > OPT->_aprSigClkOff) {
-        LOG << "t_pppClient::cmpOffGR outlier " << maxResPrn.toString() << " " << maxRes << endl;
+      if (fabs(maxRes) > 100.0) {
+        LOG << "t_pppClient::cmpOffGlo outlier " << maxResPrn.toString() << " " << maxRes << endl;
         delete obsVector.at(maxResIndex);
         obsVector.erase(obsVector.begin() + maxResIndex);
@@ -455,6 +457,6 @@
       }
 
-      if (fabs(maxRes) > OPT->_aprSigClkOff) {
-        LOG << "t_pppClient::cmpOffGE outlier " << maxResPrn.toString() << " " << maxRes << endl;
+      if (fabs(maxRes) > 100.0) {
+        LOG << "t_pppClient::cmpOffGal outlier " << maxResPrn.toString() << " " << maxRes << endl;
         delete obsVector.at(maxResIndex);
         obsVector.erase(obsVector.begin() + maxResIndex);
@@ -509,6 +511,6 @@
       }
 
-      if (fabs(maxRes) > OPT->_aprSigClkOff) {
-        LOG << "t_pppClient::cmpOffGC outlier " << maxResPrn.toString() << " " << maxRes << endl;
+      if (fabs(maxRes) > 100.0) {
+        LOG << "t_pppClient::cmpOffBDS outlier " << maxResPrn.toString() << " " << maxRes << endl;
         delete obsVector.at(maxResIndex);
         obsVector.erase(obsVector.begin() + maxResIndex);
Index: trunk/BNC/src/PPP/pppClient.h
===================================================================
--- trunk/BNC/src/PPP/pppClient.h	(revision 10258)
+++ trunk/BNC/src/PPP/pppClient.h	(revision 10259)
@@ -39,4 +39,7 @@
   double              offGal() const {return _offGal;}
   double              offBds() const {return _offBds;}
+  void                resetOffGlo() {_offGlo = 0.0;}
+  void                resetOffGal() {_offGal = 0.0;}
+  void                resetOffBds() {_offBds = 0.0;}
 
   std::ostringstream& log() {return *_log;}
@@ -81,4 +84,5 @@
   bool                      _pseudoObsIono;
   QMap<char, int>           _usedSystems;
+  bool                      _running;
 };
 
Index: trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP/pppFilter.cpp	(revision 10258)
+++ trunk/BNC/src/PPP/pppFilter.cpp	(revision 10259)
@@ -372,5 +372,6 @@
         }
 
-        // Check Pre-Fit Residuals => switched off, because after a millisecond receiver clock jump, a cycle slip is detected for all satellites
+        // Check Pre-Fit Residuals
+        //=> switched off, because after a millisecond receiver clock jump, a cycle slip is detected for all satellites
         /* -----------------------
 
Index: trunk/BNC/src/PPP/pppParlist.cpp
===================================================================
--- trunk/BNC/src/PPP/pppParlist.cpp	(revision 10258)
+++ trunk/BNC/src/PPP/pppParlist.cpp	(revision 10259)
@@ -497,18 +497,28 @@
   // GLONASS Clock Offset
   // --------------------
-  if (OPT->useSystem('R')) {
+  if ( _usedSystems.contains('R')  &&
+      (_usedSystems.contains('G') || _usedSystems.contains('E') || _usedSystems.contains('C'))) {
     required.push_back(new t_pppParam(t_pppParam::offGlo, t_prn(), t_lc::dummy));
+  }
+  else {
+    PPP_CLIENT->resetOffGlo();
   }
 
   // Galileo Clock Offset
   // --------------------
-  if (OPT->useSystem('E')) {
+  if (_usedSystems.contains('E') && _usedSystems.contains('G')) {
     required.push_back(new t_pppParam(t_pppParam::offGal, t_prn(), t_lc::dummy));
+  }
+  else {
+    PPP_CLIENT->resetOffGal();
   }
 
   // BDS Clock Offset
   // ----------------
-  if (OPT->useSystem('C')) {
+  if (_usedSystems.contains('C')  && (_usedSystems.contains('G') || _usedSystems.contains('E'))) {
     required.push_back(new t_pppParam(t_pppParam::offBds, t_prn(), t_lc::dummy));
+  }
+  else {
+    PPP_CLIENT->resetOffBds();
   }
 
Index: trunk/BNC/src/pppMain.cpp
===================================================================
--- trunk/BNC/src/pppMain.cpp	(revision 10258)
+++ trunk/BNC/src/pppMain.cpp	(revision 10259)
@@ -528,5 +528,5 @@
     opt->_aprSigAmb       = 10000.0;
     opt->_aprSigClk       = 300000.0;
-    opt->_aprSigClkOff    = 100000.0;
+    opt->_aprSigClkOff    = 1000.0;
     opt->_aprSigIon       = 1000.0;
     opt->_noiseIon        = 100.0;
