Index: /trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppThread.cpp	(revision 5900)
+++ /trunk/BNC/src/PPP/pppThread.cpp	(revision 5901)
@@ -74,4 +74,7 @@
 ////////////////////////////////////////////////////////////////////////////
 void t_pppThread::run() {
+  
+  connect(BNC_CORE, SIGNAL(quitPPP()), this, SLOT(quit()));
+
   try {
     _pppRun = new t_pppRun(_opt);
Index: /trunk/BNC/src/bnccore.cpp
===================================================================
--- /trunk/BNC/src/bnccore.cpp	(revision 5900)
+++ /trunk/BNC/src/bnccore.cpp	(revision 5901)
@@ -878,4 +878,4 @@
 ////////////////////////////////////////////////////////////////////////////
 void t_bncCore::stopPPP() {
-  _pppMain->stop();
-}
+  emit quitPPP();
+}
Index: /trunk/BNC/src/bnccore.h
===================================================================
--- /trunk/BNC/src/bnccore.h	(revision 5900)
+++ /trunk/BNC/src/bnccore.h	(revision 5901)
@@ -92,4 +92,5 @@
   void providerIDChanged(QString);
   void newPosition(bncTime time, QVector<double> xx);
+  void quitPPP();
     
  private slots:
