Index: /trunk/BNC/bnccaster.cpp
===================================================================
--- /trunk/BNC/bnccaster.cpp	(revision 1524)
+++ /trunk/BNC/bnccaster.cpp	(revision 1525)
@@ -117,6 +117,5 @@
   while(it.hasNext()){
     bncGetThread* thread = it.next();
-    ////    thread->quit();
-    thread->deleteLater();
+    thread->terminate();
   }
   delete _out;
@@ -435,5 +434,4 @@
       _threads.removeAll(thread);
       thread->terminate();
-      delete thread;
     }
   }
Index: /trunk/BNC/bncgetthread.cpp
===================================================================
--- /trunk/BNC/bncgetthread.cpp	(revision 1524)
+++ /trunk/BNC/bncgetthread.cpp	(revision 1525)
@@ -85,5 +85,5 @@
   if (!_rnx) {
     cerr << "no RINEX path specified" << endl;
-    ::exit(0);
+    delete this;
   }
 }
@@ -121,4 +121,5 @@
                app, SLOT(slotMessage(const QByteArray,bool)));
 
+  _isToBeDeleted = false;
   _decoder    = 0;
   _query      = 0;
@@ -292,7 +293,5 @@
 ////////////////////////////////////////////////////////////////////////////
 bncGetThread::~bncGetThread() {
-  if (_query) {
-    _query->deleteLater();
-  }
+  delete _query;
   delete _decoder;
   delete _rnx;
@@ -305,9 +304,5 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncGetThread::terminate() {
-  if (_query) {
-    _query->stop();
-  }
-  QThread::terminate();
-  wait(2000);
+  _isToBeDeleted = true;
 }
 
@@ -365,5 +360,5 @@
       if (_rawInpFile) {
         cerr << "Uknown data format" << endl;
-        ::exit(0);
+        delete this;
       }
       else {
@@ -407,5 +402,5 @@
 
   if      (irc == fatal) {
-    QThread::exit(1);
+    this->deleteLater();
     return;
   }
@@ -797,14 +792,4 @@
 }
 
-// Exit
-////////////////////////////////////////////////////////////////////////////
-void bncGetThread::exit(int exitCode) {
-  if (exitCode!= 0) {
-    emit error(_staID);
-  }
-  QThread::exit(exitCode);
-  terminate();
-}
-
 // Try Re-Connect 
 ////////////////////////////////////////////////////////////////////////////
Index: /trunk/BNC/bncgetthread.h
===================================================================
--- /trunk/BNC/bncgetthread.h	(revision 1524)
+++ /trunk/BNC/bncgetthread.h	(revision 1525)
@@ -51,6 +51,8 @@
                 const QByteArray& ntripVersion, int iMount);
 
+ protected:
    ~bncGetThread();
 
+ public:
    void terminate();
 
@@ -78,5 +80,4 @@
    t_irc initRun();
    void  message(const QString&);
-   void  exit(int exitCode = 0);
    void  tryReconnect();
    void  callScript(const char* _comment);
@@ -123,4 +124,5 @@
    QFile*      _rawInpFile;
    QextSerialPort* _serialPort;
+   bool        _isToBeDeleted;
 };
 
