Index: trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- trunk/BNC/src/PPP/pppThread.cpp	(revision 5726)
+++ trunk/BNC/src/PPP/pppThread.cpp	(revision 5727)
@@ -69,5 +69,5 @@
   // ----------------------
   if (BNC_CORE->caster()) {
-    connect(BNC_CORE->caster(), SIGNAL(newObs(QByteArray, QList<t_obs>)),
+    connect(BNC_CORE->caster().data(), SIGNAL(newObs(QByteArray, QList<t_obs>)),
           this,      SLOT(slotNewObs(QByteArray, QList<t_obs>)));
 
Index: trunk/BNC/src/bnccore.cpp
===================================================================
--- trunk/BNC/src/bnccore.cpp	(revision 5726)
+++ trunk/BNC/src/bnccore.cpp	(revision 5727)
@@ -72,5 +72,4 @@
   _logFile     = 0;
   _logStream   = 0;
-  _caster      = 0;
   _rawFile     = 0;
 #ifdef USE_COMBINATION
@@ -631,5 +630,5 @@
 void t_bncCore::slotQuit() {
   cout << "t_bncCore::slotQuit" << endl;
-  delete _caster;
+  _caster.clear();
   qApp->quit();
 }
Index: trunk/BNC/src/bnccore.h
===================================================================
--- trunk/BNC/src/bnccore.h	(revision 5726)
+++ trunk/BNC/src/bnccore.h	(revision 5727)
@@ -51,6 +51,6 @@
     void setPort(int port);
     void setPortCorr(int port);
-    void setCaster(bncCaster* caster) {_caster = caster;}
-    const bncCaster* caster() const {return _caster;}
+    void setCaster(QSharedPointer<bncCaster> caster) {_caster = caster;}
+    QSharedPointer<bncCaster> caster() const {return _caster;}
     QDateTime* _currentDateAndTimeGPS;
     void setConfFileName(const QString& confFileName);
@@ -128,5 +128,5 @@
     QTcpServer*         _serverNMEA;
     QList<QTcpSocket*>* _socketsNMEA;
-    bncCaster*          _caster;
+    QSharedPointer<bncCaster> _caster;
     QMap<QString, bncTime> _lastCorrDumpTime;
     double              _waitCoTime;
Index: trunk/BNC/src/bncmain.cpp
===================================================================
--- trunk/BNC/src/bncmain.cpp	(revision 5726)
+++ trunk/BNC/src/bncmain.cpp	(revision 5727)
@@ -193,5 +193,5 @@
     bncEphUploadCaster* casterEph = new bncEphUploadCaster(); (void) casterEph;
     
-    bncCaster* caster = new bncCaster();
+    QSharedPointer<bncCaster> caster(new bncCaster());
     
     BNC_CORE->setCaster(caster);
@@ -200,5 +200,5 @@
     BNC_CORE->initCombination();
     
-    BNC_CORE->connect(caster, SIGNAL(getThreadsFinished()), &app, SLOT(quit()));
+    BNC_CORE->connect(caster.data(), SIGNAL(getThreadsFinished()), &app, SLOT(quit()));
     
     BNC_CORE->slotMessage("========== Start BNC v" BNCVERSION " =========", true);
Index: trunk/BNC/src/bncwindow.cpp
===================================================================
--- trunk/BNC/src/bncwindow.cpp	(revision 5726)
+++ trunk/BNC/src/bncwindow.cpp	(revision 5727)
@@ -90,5 +90,4 @@
 #endif
 
-  _caster    = 0;
   _casterEph = 0;
 
@@ -1528,5 +1527,5 @@
 ////////////////////////////////////////////////////////////////////////////
 bncWindow::~bncWindow() {
-  delete _caster;
+  _caster.clear();
   delete _casterEph;
   delete _pppMain;
@@ -1991,5 +1990,5 @@
 void bncWindow::slotGetThreadsFinished() {
   BNC_CORE->slotMessage("All Get Threads Terminated", true);
-  delete _caster;    _caster    = 0;
+  _caster.clear();
   delete _casterEph; _casterEph = 0;
   _runningRealTime = false;
@@ -2026,5 +2025,5 @@
   enableStartStop();
 
-  _caster = new bncCaster();
+  _caster = QSharedPointer<bncCaster>(new bncCaster());
 
   BNC_CORE->setCaster(_caster);
@@ -2033,8 +2032,8 @@
   BNC_CORE->initCombination();
 
-  connect(_caster, SIGNAL(getThreadsFinished()), 
+  connect(_caster.data(), SIGNAL(getThreadsFinished()), 
           this, SLOT(slotGetThreadsFinished()));
 
-  connect (_caster, SIGNAL(mountPointsRead(QList<bncGetThread*>)), 
+  connect (_caster.data(), SIGNAL(mountPointsRead(QList<bncGetThread*>)), 
            this, SLOT(slotMountPointsRead(QList<bncGetThread*>)));
 
@@ -2088,5 +2087,5 @@
     }
     BNC_CORE->stopCombination();
-    delete _caster;    _caster    = 0;
+    _caster.clear();
     delete _casterEph; _casterEph = 0;
     _runningRealTime = false;
Index: trunk/BNC/src/bncwindow.h
===================================================================
--- trunk/BNC/src/bncwindow.h	(revision 5726)
+++ trunk/BNC/src/bncwindow.h	(revision 5727)
@@ -260,5 +260,5 @@
     bncBytesCounter* _uploadEphBytesCounter;
 
-    bncCaster* _caster;
+    QSharedPointer<bncCaster> _caster;
 
     bncEphUploadCaster* _casterEph;
