Index: trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- trunk/BNC/src/PPP/pppClient.cpp	(revision 5773)
+++ trunk/BNC/src/PPP/pppClient.cpp	(revision 5774)
@@ -118,5 +118,5 @@
   else if (ephGlo) {
     _ephPool->putEphemeris(new t_ephGlo(*ephGlo));
-    LOG << OPT->_roverName <<  " putEphemeirs Glo" << endl;
+    LOG << OPT->_roverName <<  " putEphemeris Glo" << endl;
   }
   else if (ephGal) {
Index: trunk/BNC/src/PPP/pppMain.cpp
===================================================================
--- trunk/BNC/src/PPP/pppMain.cpp	(revision 5773)
+++ trunk/BNC/src/PPP/pppMain.cpp	(revision 5774)
@@ -95,6 +95,5 @@
   while (it.hasNext()) {
     t_pppThread* pppThread = it.next();
-    pppThread->exit();
-    pppThread->deleteLater();
+    pppThread->stop();
   }
   _pppThreads.clear();
Index: trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- trunk/BNC/src/PPP/pppThread.cpp	(revision 5773)
+++ trunk/BNC/src/PPP/pppThread.cpp	(revision 5774)
@@ -54,5 +54,6 @@
 ////////////////////////////////////////////////////////////////////////////
 t_pppThread::t_pppThread(const t_options* opt) : QThread(0) {
-  _opt = opt;
+  _opt   = opt;
+  _pppRun = 0;
   connect(this, SIGNAL(newMessage(QByteArray,bool)), 
           BNC_CORE, SLOT(slotMessage(const QByteArray,bool)));
@@ -76,4 +77,13 @@
   }
   QThread::exec();
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void t_pppThread::stop() {
+  this->exit();
+  delete _pppRun; _pppRun = 0;
+  this->wait(1000);
+  this->deleteLater();
 }
 
Index: trunk/BNC/src/PPP/pppThread.h
===================================================================
--- trunk/BNC/src/PPP/pppThread.h	(revision 5773)
+++ trunk/BNC/src/PPP/pppThread.h	(revision 5774)
@@ -39,4 +39,5 @@
   ~t_pppThread();
   virtual void run();
+  void stop();
 
  signals:
