Index: trunk/BNC/RTCM/GPSDecoder.h
===================================================================
--- trunk/BNC/RTCM/GPSDecoder.h	(revision 2702)
+++ trunk/BNC/RTCM/GPSDecoder.h	(revision 2709)
@@ -29,5 +29,4 @@
 #include <vector>
 #include <string>
-#include <QPointer>
 #include <QList>
 #include <QStringList>
@@ -35,5 +34,49 @@
 #include "bncconst.h"
 
-struct t_obsInternal {
+class t_obs {
+ public:
+  enum t_obs_status {initial, posted, received};
+  t_obs() {
+    _status     = initial;
+    satSys      = 'G';
+    satNum      = 0;
+    slotNum     = 0;
+    GPSWeek     = 0;
+    GPSWeeks    = 0.0;
+    C1          = 0.0;
+    P1          = 0.0;
+    L1C         = 0.0;
+    D1C         = 0.0;
+    S1C         = 0.0;
+    L1P         = 0.0;
+    D1P         = 0.0;
+    S1P         = 0.0;
+    C2          = 0.0;
+    P2          = 0.0;
+    L2C         = 0.0;
+    D2C         = 0.0;
+    S2C         = 0.0;
+    L2P         = 0.0;
+    D2P         = 0.0;
+    S2P         = 0.0;
+    C5          = 0.0;
+    L5          = 0.0;
+    D5          = 0.0;
+    S5          = 0.0;
+    slip_cnt_L1 = -1;
+    slip_cnt_L2 = -1;
+    slip_cnt_L5 = -1;
+    StatID[0]   = '\x0';
+  }
+
+  ~t_obs() {}
+
+  double L1() const {return (L1P != 0.0 ? L1P : L1C);}
+  double L2() const {return (L2P != 0.0 ? L2P : L2C);}
+  double S1() const {return (L1P != 0.0 ? S1P : S1C);}
+  double S2() const {return (L2P != 0.0 ? S2P : S2C);}
+
+  t_obs_status  _status;
+
   char   StatID[20+1]; // Station ID
   char   satSys;       // Satellite System ('G' or 'R')
@@ -71,49 +114,5 @@
 };
 
-class t_obs : public QObject{
- public:
-  enum t_obs_status {initial, posted, received};
-  t_obs() {
-    _status        = initial;
-    _o.satSys      = 'G';
-    _o.satNum      = 0;
-    _o.slotNum     = 0;
-    _o.GPSWeek     = 0;
-    _o.GPSWeeks    = 0.0;
-    _o.C1          = 0.0;
-    _o.P1          = 0.0;
-    _o.L1C         = 0.0;
-    _o.D1C         = 0.0;
-    _o.S1C         = 0.0;
-    _o.L1P         = 0.0;
-    _o.D1P         = 0.0;
-    _o.S1P         = 0.0;
-    _o.C2          = 0.0;
-    _o.P2          = 0.0;
-    _o.L2C         = 0.0;
-    _o.D2C         = 0.0;
-    _o.S2C         = 0.0;
-    _o.L2P         = 0.0;
-    _o.D2P         = 0.0;
-    _o.S2P         = 0.0;
-    _o.C5          = 0.0;
-    _o.L5          = 0.0;
-    _o.D5          = 0.0;
-    _o.S5          = 0.0;
-    _o.slip_cnt_L1 = -1;
-    _o.slip_cnt_L2 = -1;
-    _o.slip_cnt_L5 = -1;
-    _o.StatID[0]   = '\x0';
-  }
-  ~t_obs() {}
-  double L1() const {return (_o.L1P != 0.0 ? _o.L1P : _o.L1C);}
-  double L2() const {return (_o.L2P != 0.0 ? _o.L2P : _o.L2C);}
-  double S1() const {return (_o.L1P != 0.0 ? _o.S1P : _o.S1C);}
-  double S2() const {return (_o.L2P != 0.0 ? _o.S2P : _o.S2C);}
-  t_obsInternal _o;
-  t_obs_status  _status;
-};
-
-typedef QPointer<t_obs> p_obs;
+typedef t_obs* p_obs;
 
 class GPSDecoder {
@@ -125,5 +124,5 @@
     while (it.hasNext()) {
       p_obs obs = it.next();
-      if (!obs.isNull() && obs->_status == t_obs::initial) {
+      if (obs && obs->_status == t_obs::initial) {
         delete obs;
       }
Index: trunk/BNC/RTCM/RTCM2Decoder.cpp
===================================================================
--- trunk/BNC/RTCM/RTCM2Decoder.cpp	(revision 2702)
+++ trunk/BNC/RTCM/RTCM2Decoder.cpp	(revision 2709)
@@ -143,20 +143,20 @@
           _obsList.push_back(obs);
           if (_ObsBlock.PRN[iSat] > 100) {
-            obs->_o.satNum      = _ObsBlock.PRN[iSat] % 100;
-            obs->_o.satSys      = 'R';
+            obs->satNum      = _ObsBlock.PRN[iSat] % 100;
+            obs->satSys      = 'R';
 	  }		        
 	  else {	        
-            obs->_o.satNum      = _ObsBlock.PRN[iSat];
-            obs->_o.satSys      = 'G';
+            obs->satNum      = _ObsBlock.PRN[iSat];
+            obs->satSys      = 'G';
 	  }		        
-          obs->_o.GPSWeek       = epochWeek;
-          obs->_o.GPSWeeks      = epochSecs;
-          obs->_o.C1            = _ObsBlock.rng_C1[iSat];
-          obs->_o.P1            = _ObsBlock.rng_P1[iSat];
-          obs->_o.P2            = _ObsBlock.rng_P2[iSat];
-          obs->_o.L1P           = _ObsBlock.resolvedPhase_L1(iSat);
-          obs->_o.L2P           = _ObsBlock.resolvedPhase_L2(iSat);
-	  obs->_o.slip_cnt_L1   = _ObsBlock.slip_L1[iSat];
-	  obs->_o.slip_cnt_L2   = _ObsBlock.slip_L2[iSat];
+          obs->GPSWeek       = epochWeek;
+          obs->GPSWeeks      = epochSecs;
+          obs->C1            = _ObsBlock.rng_C1[iSat];
+          obs->P1            = _ObsBlock.rng_P1[iSat];
+          obs->P2            = _ObsBlock.rng_P2[iSat];
+          obs->L1P           = _ObsBlock.resolvedPhase_L1(iSat);
+          obs->L2P           = _ObsBlock.resolvedPhase_L2(iSat);
+	  obs->slip_cnt_L1   = _ObsBlock.slip_L1[iSat];
+	  obs->slip_cnt_L2   = _ObsBlock.slip_L2[iSat];
         }
         _ObsBlock.clear();
@@ -382,10 +382,10 @@
 	  new_obs = new t_obs();
 
-	  new_obs->_o.StatID[0] = '\x0';
-	  new_obs->_o.satSys    = (corr->PRN < 200 ? 'G'       : 'R');
-	  new_obs->_o.satNum    = (corr->PRN < 200 ? corr->PRN : corr->PRN - 200);
+	  new_obs->StatID[0] = '\x0';
+	  new_obs->satSys    = (corr->PRN < 200 ? 'G'       : 'R');
+	  new_obs->satNum    = (corr->PRN < 200 ? corr->PRN : corr->PRN - 200);
 	  
-	  new_obs->_o.GPSWeek   = GPSWeek_rcv;
-	  new_obs->_o.GPSWeeks  = GPSWeeks_rcv;
+	  new_obs->GPSWeek   = GPSWeek_rcv;
+	  new_obs->GPSWeeks  = GPSWeeks_rcv;
 	}
 	
@@ -394,22 +394,22 @@
 	switch (ii) {
 	case 0: // --- L1 ---
-	  new_obs->_o.L1P = *obsVal / LAMBDA_1;
-	  new_obs->_o.slip_cnt_L1   = corr->lock1;
+	  new_obs->L1P = *obsVal / LAMBDA_1;
+	  new_obs->slip_cnt_L1   = corr->lock1;
 	  break;
 	case 1: // --- L2 ---
-	  new_obs->_o.L2P = *obsVal / LAMBDA_2;
-	  new_obs->_o.slip_cnt_L2   = corr->lock2;
+	  new_obs->L2P = *obsVal / LAMBDA_2;
+	  new_obs->slip_cnt_L2   = corr->lock2;
 	  break;
 	case 2: // --- C1 / P1 ---
 	  if ( corr->Pind1 )
-	    new_obs->_o.P1 = *obsVal;
+	    new_obs->P1 = *obsVal;
 	  else
-	    new_obs->_o.C1 = *obsVal;
+	    new_obs->C1 = *obsVal;
 	  break;
 	case 3: // --- C2 / P2 ---
 	  if ( corr->Pind2 )
-	    new_obs->_o.P2 = *obsVal;
+	    new_obs->P2 = *obsVal;
 	  else
-	    new_obs->_o.C2 = *obsVal;
+	    new_obs->C2 = *obsVal;
 	  break;
 	default:
