Index: /trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppClient.cpp	(revision 7971)
+++ /trunk/BNC/src/PPP/pppClient.cpp	(revision 7972)
@@ -63,5 +63,12 @@
     _antex = 0;
   }
-
+/*
+  if (!_opt->_blqFileName.empty()) {
+    _loading = new t_loading(_opt->_blqFileName.c_str());
+  }
+  else {
+    _loading = 0;
+  }
+*/
   CLIENTS.setLocalData(this);  // CLIENTS takes ownership over "this"
 }
@@ -80,4 +87,9 @@
   delete _filter;
   delete _tides;
+  /*
+  if (_loading) {
+    delete _loading;
+  }
+  */
   clearObs();
 }
@@ -565,2 +577,18 @@
 }
 
+//
+//////////////////////////////////////////////////////////////////////////////
+void t_pppClient::reset() {
+
+  // to delete all parameters
+  delete _filter;
+  _filter   = new t_pppFilter();
+
+  // to delete old orbit and clock corrections
+  delete _ephPool;
+  _ephPool  = new t_pppEphPool();
+
+  // to delete old code biases
+  delete _obsPool;
+  _obsPool  = new t_pppObsPool();
+}
Index: /trunk/BNC/src/PPP/pppClient.h
===================================================================
--- /trunk/BNC/src/PPP/pppClient.h	(revision 7971)
+++ /trunk/BNC/src/PPP/pppClient.h	(revision 7972)
@@ -45,4 +45,6 @@
   static t_pppClient* instance();
 
+  void reset();
+
  private:
   void initOutput(t_output* output);
@@ -69,4 +71,5 @@
   t_pppOptions*             _opt;
   t_tides*                  _tides;
+//  t_loading*                _loading;
 };
 
Index: /trunk/BNC/src/PPP_SSR_I/pppClient.cpp
===================================================================
--- /trunk/BNC/src/PPP_SSR_I/pppClient.cpp	(revision 7971)
+++ /trunk/BNC/src/PPP_SSR_I/pppClient.cpp	(revision 7972)
@@ -428,2 +428,20 @@
   return failure;
 }
+
+//
+////////////////////////////////////////////////////////////////////////////
+void t_pppClient::reset() {
+
+  // to delete all parameters
+  delete _filter;
+  _filter   = new t_pppFilter(this);
+
+  // to delete old orbit and clock corrections
+  delete _ephUser;
+  _ephUser  = new bncEphUser(false);
+
+  // to delete old code biases
+  delete _pppUtils;
+  _pppUtils = new t_pppUtils();
+
+}
Index: /trunk/BNC/src/PPP_SSR_I/pppClient.h
===================================================================
--- /trunk/BNC/src/PPP_SSR_I/pppClient.h	(revision 7971)
+++ /trunk/BNC/src/PPP_SSR_I/pppClient.h	(revision 7972)
@@ -52,4 +52,5 @@
   std::ostringstream& log() {return *_log;}
   const t_pppOptions* opt() const {return _opt;}
+  void                reset();
 
  private:
Index: /trunk/BNC/src/pppRun.cpp
===================================================================
--- /trunk/BNC/src/pppRun.cpp	(revision 7971)
+++ /trunk/BNC/src/pppRun.cpp	(revision 7972)
@@ -122,4 +122,7 @@
     connect(BNC_CMB, SIGNAL(newClkCorrections(QList<t_clkCorr>)),
             this, SLOT(slotNewClkCorrections(QList<t_clkCorr>)),conType);
+            
+    connect(BNC_CORE, SIGNAL(providerIDChanged(QString)),
+            this, SLOT(slotProviderIDChanged(QString)));
   }
   else {
@@ -678,2 +681,22 @@
   return '$' + nmStr + QString("*%1\n").arg(int(XOR), 0, 16).toUpper();
 }
+
+//
+////////////////////////////////////////////////////////////////////////////
+void t_pppRun::slotProviderIDChanged(QString mountPoint) {
+  QMutexLocker locker(&_mutex);
+
+  if (mountPoint.toStdString() !=_opt->_corrMount) {
+    return;
+  }
+
+  QString msg = "pppRun " + QString(_opt->_roverName.c_str()) + ": Provider Changed: " + mountPoint;
+  emit newMessage(msg.toAscii(), true);
+
+  _pppClient->reset();
+
+  while (!_epoData.empty()) {
+    delete _epoData.front();
+    _epoData.pop_front();
+  }
+}
Index: /trunk/BNC/src/pppRun.h
===================================================================
--- /trunk/BNC/src/pppRun.h	(revision 7971)
+++ /trunk/BNC/src/pppRun.h	(revision 7972)
@@ -48,4 +48,5 @@
   void slotSetSpeed(int speed);
   void slotSetStopFlag();
+  void slotProviderIDChanged(QString mountPoint);
 
  private:
