Index: trunk/BNC/src/PPP/pppMain.cpp
===================================================================
--- trunk/BNC/src/PPP/pppMain.cpp	(revision 5904)
+++ trunk/BNC/src/PPP/pppMain.cpp	(revision 5905)
@@ -62,5 +62,5 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
-void t_pppMain::start() {
+void t_pppMain::start(bool ownThread) {
   if (_running) {
     return;
@@ -73,6 +73,13 @@
     while (iOpt.hasNext()) {
       const t_pppOptions* opt = iOpt.next();
-      t_pppThread* pppThread = new t_pppThread(opt);
-      pppThread->start();
+      t_pppThread* pppThread = new t_pppThread(ownThread, opt);
+      if (ownThread) {
+        cout << "start" << endl;
+        pppThread->start();
+      }
+      else {
+        cout << "run" << endl;
+        pppThread->run();
+      }
       _pppThreads << pppThread;
       _running = true;
Index: trunk/BNC/src/PPP/pppMain.h
===================================================================
--- trunk/BNC/src/PPP/pppMain.h	(revision 5904)
+++ trunk/BNC/src/PPP/pppMain.h	(revision 5905)
@@ -10,8 +10,8 @@
 class t_pppMain {
  public:
-  t_pppMain();                                                      
+  t_pppMain();
   ~t_pppMain();
-  void start();                                                     
-  void stop();                                                     
+  void start(bool ownThread);
+  void stop();
 
  private:
@@ -20,8 +20,8 @@
   QList<t_pppOptions*> _options;
   QList<t_pppThread*>  _pppThreads;
-  QString              _logFile;
-  QString              _nmeaFile;
-  int                  _nmeaPort;
-  bool                 _running;
+  QString  _logFile;
+  QString  _nmeaFile;
+  int      _nmeaPort;
+  bool     _running;
 };
 
Index: trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- trunk/BNC/src/PPP/pppThread.cpp	(revision 5904)
+++ trunk/BNC/src/PPP/pppThread.cpp	(revision 5905)
@@ -55,7 +55,9 @@
 // Constructor
 ////////////////////////////////////////////////////////////////////////////
-t_pppThread::t_pppThread(const t_pppOptions* opt) : QThread(0) {
-  _opt    = opt;
-  _pppRun = 0;
+t_pppThread::t_pppThread(bool ownThread, const t_pppOptions* opt) : QThread(0) {
+
+  _ownThread = ownThread;
+  _opt       = opt;
+  _pppRun    = 0;
 
   connect(this, SIGNAL(finished()), this, SLOT(deleteLater()));
@@ -79,5 +81,7 @@
     _pppRun = new t_pppRun(_opt);
     if (_opt->_realTime) {
-      QThread::exec();
+      if (_ownThread) {
+        QThread::exec();
+      }
     }
     else {
Index: trunk/BNC/src/PPP/pppThread.h
===================================================================
--- trunk/BNC/src/PPP/pppThread.h	(revision 5904)
+++ trunk/BNC/src/PPP/pppThread.h	(revision 5905)
@@ -16,5 +16,5 @@
  Q_OBJECT
  public:
-  t_pppThread(const t_pppOptions* opt);
+  t_pppThread(bool ownThread, const t_pppOptions* opt);
   ~t_pppThread();
   virtual void run();
@@ -25,4 +25,5 @@
 
  private:
+  bool                _ownThread;
   const t_pppOptions* _opt;
   t_pppRun*           _pppRun;
