Index: trunk/BNC/RTCM/GPSDecoder.h
===================================================================
--- trunk/BNC/RTCM/GPSDecoder.h	(revision 623)
+++ trunk/BNC/RTCM/GPSDecoder.h	(revision 624)
@@ -76,10 +76,4 @@
   }
 
-  ~t_obs() {
-    if (_status == posted) {
-      return;
-    }
-  }
-
   t_obsInternal _o;
   t_obs_status  _status;
@@ -95,5 +89,8 @@
     QListIterator<p_obs> it(_obsList);
     while (it.hasNext()) {
-      delete it.next();
+      p_obs obs = it.next();
+      if (obs->_status == t_obs::initial) {
+        delete obs;
+      }
     }
   }
Index: trunk/BNC/bnccaster.cpp
===================================================================
--- trunk/BNC/bnccaster.cpp	(revision 623)
+++ trunk/BNC/bnccaster.cpp	(revision 624)
@@ -122,4 +122,6 @@
 
   QMutexLocker locker(&_mutex);
+
+  obs->_status = t_obs::received;
 
   long iSec    = long(floor(obs->_o.GPSWeeks+0.5));
@@ -173,4 +175,7 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncCaster::addGetThread(bncGetThread* getThread) {
+
+  qRegisterMetaType<p_obs>("p_obs");
+
   connect(getThread, SIGNAL(newObs(const QByteArray, bool, p_obs)),
           this,      SLOT(newObs(const QByteArray, bool, p_obs)));
Index: trunk/BNC/bncgetthread.cpp
===================================================================
--- trunk/BNC/bncgetthread.cpp	(revision 623)
+++ trunk/BNC/bncgetthread.cpp	(revision 624)
@@ -444,4 +444,5 @@
 
           bool firstObs = (obs == _decoder->_obsList.first());
+          obs->_status = t_obs::posted;
           emit newObs(_staID, firstObs, obs);
         }
Index: trunk/BNC/bncmain.cpp
===================================================================
--- trunk/BNC/bncmain.cpp	(revision 623)
+++ trunk/BNC/bncmain.cpp	(revision 624)
@@ -117,5 +117,5 @@
 
     //// beg test
-    QTimer::singleShot(30000, &app, SLOT(slotQuit()));
+    ////    QTimer::singleShot(30000, &app, SLOT(slotQuit()));
     //// end test
 
