Index: trunk/BNC/GPSS/gpssDecoder.cpp
===================================================================
--- trunk/BNC/GPSS/gpssDecoder.cpp	(revision 2708)
+++ trunk/BNC/GPSS/gpssDecoder.cpp	(revision 2709)
@@ -1,3 +1,3 @@
-\
+
 /* -------------------------------------------------------------------------
  * BKG NTRIP Client
@@ -87,10 +87,10 @@
                sizeof(epochHdr));
         
-        reqLength += epochHdr.n_svs * sizeof(t_obsInternal) + sizeof(crc) + 1;
+        reqLength += epochHdr.n_svs * sizeof(t_obs) + sizeof(crc) + 1;
 
         if (_buffer.length() >= reqLength) {
 
           int checkLen = 2 + sizeof(recordSize) + sizeof(EPOCHHEADER) + 
-                         epochHdr.n_svs * sizeof(t_obsInternal);
+                         epochHdr.n_svs * sizeof(t_obs);
           memcpy(&crc, _buffer.data() + checkLen, sizeof(crc));
           int crcCal = cal_crc((unsigned char*) _buffer.data(), checkLen);
@@ -100,7 +100,6 @@
               obsFound = true;
               t_obs* obs = new t_obs();
-              memcpy(&(obs->_o), _buffer.data() + 2 + sizeof(recordSize) + 
-                                 sizeof(epochHdr) + is * sizeof(t_obsInternal), 
-                     sizeof(t_obsInternal));
+              memcpy(obs, _buffer.data() + 2 + sizeof(recordSize) + 
+                     sizeof(epochHdr) + is * sizeof(t_obs), sizeof(t_obs));
               _obsList.push_back(obs);
             }
Index: trunk/BNC/RTCM/GPSDecoder.h
===================================================================
--- trunk/BNC/RTCM/GPSDecoder.h	(revision 2708)
+++ 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 2708)
+++ 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:
Index: trunk/BNC/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 2708)
+++ trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 2709)
@@ -243,6 +243,6 @@
               // ---
               if      (satID >= PRN_GPS_START     && satID <= PRN_GPS_END) {
-                obs->_o.satSys = 'G';
-                obs->_o.satNum = satID;
+                obs->satSys = 'G';
+                obs->satNum = satID;
               }
 
@@ -250,9 +250,9 @@
               // -------
               else if (satID >= PRN_GLONASS_START && satID <= PRN_GLONASS_END) {
-                obs->_o.satSys = 'R';
-                obs->_o.satNum = satID - PRN_GLONASS_START + 1;
-                if (obs->_o.satNum <= PRN_GLONASS_NUM && 
-                    parser.GLOFreq[obs->_o.satNum-1] != 0) {
-                  obs->_o.slotNum   = parser.GLOFreq[obs->_o.satNum-1] - 100;
+                obs->satSys = 'R';
+                obs->satNum = satID - PRN_GLONASS_START + 1;
+                if (obs->satNum <= PRN_GLONASS_NUM && 
+                    parser.GLOFreq[obs->satNum-1] != 0) {
+                  obs->slotNum   = parser.GLOFreq[obs->satNum-1] - 100;
                 }
                 else { 
@@ -265,6 +265,6 @@
               // -------
               else if (satID >= PRN_GALILEO_START && satID <= PRN_GALILEO_END) {
-                obs->_o.satSys = 'E';
-                obs->_o.satNum = satID - PRN_GALILEO_START + 1;
+                obs->satSys = 'E';
+                obs->satNum = satID - PRN_GALILEO_START + 1;
               }
 
@@ -272,6 +272,6 @@
               // ----
               else if (satID >= PRN_WAAS_START && satID <= PRN_WAAS_END) {
-                obs->_o.satSys = 'S';
-                obs->_o.satNum = satID - PRN_WAAS_START + 20;
+                obs->satSys = 'S';
+                obs->satNum = satID - PRN_WAAS_START + 20;
               }
 
@@ -279,6 +279,6 @@
               // -------------
               else if (satID >= PRN_GIOVE_START && satID <= PRN_GIOVE_END) {
-                obs->_o.satSys = 'E';
-                obs->_o.satNum = satID - PRN_GIOVE_START + PRN_GIOVE_OFFSET;
+                obs->satSys = 'E';
+                obs->satNum = satID - PRN_GIOVE_START + PRN_GIOVE_OFFSET;
               }
 
@@ -297,9 +297,9 @@
               }
 
-              obs->_o.GPSWeek  = gnssData.week;
-              obs->_o.GPSWeeks = gnssData.timeofweek / 1000.0;
-
-              QString prn = QString("%1%2").arg(obs->_o.satSys)
-                            .arg(obs->_o.satNum, 2, 10, QChar('0'));
+              obs->GPSWeek  = gnssData.week;
+              obs->GPSWeeks = gnssData.timeofweek / 1000.0;
+
+              QString prn = QString("%1%2").arg(obs->satSys)
+                            .arg(obs->satNum, 2, 10, QChar('0'));
 
               // Handle loss-of-lock flags
@@ -318,5 +318,5 @@
                   _slip_cnt_L1[prn] = 1;
                 }
-                obs->_o.slip_cnt_L1 = _slip_cnt_L1[prn];
+                obs->slip_cnt_L1 = _slip_cnt_L1[prn];
               }
               if (GNSSDF2_LOCKLOSSL2 & gnssData.dataflags2[iSat]) {
@@ -327,5 +327,5 @@
                   _slip_cnt_L2[prn] = 1;
                 }
-                obs->_o.slip_cnt_L2 = _slip_cnt_L2[prn];
+                obs->slip_cnt_L2 = _slip_cnt_L2[prn];
               }
               if (GNSSDF2_LOCKLOSSL5 & gnssData.dataflags2[iSat]) {
@@ -336,5 +336,5 @@
                   _slip_cnt_L5[prn] = 1;
                 }
-                obs->_o.slip_cnt_L5 = _slip_cnt_L5[prn];
+                obs->slip_cnt_L5 = _slip_cnt_L5[prn];
               }
 
@@ -357,62 +357,62 @@
 
                   if      (iEntry == GNSSENTRY_C1DATA) {
-                    obs->_o.C1  = gnssData.measdata[iSat][iEntry];
+                    obs->C1  = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_C2DATA) {
-                    obs->_o.C2  = gnssData.measdata[iSat][iEntry];
+                    obs->C2  = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_P1DATA) {
-                    obs->_o.P1  = gnssData.measdata[iSat][iEntry];
+                    obs->P1  = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_P2DATA) {
-                    obs->_o.P2  = gnssData.measdata[iSat][iEntry];
+                    obs->P2  = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_L1CDATA) {
-                    obs->_o.L1C = gnssData.measdata[iSat][iEntry];
+                    obs->L1C = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_L1PDATA) {
-                    obs->_o.L1P = gnssData.measdata[iSat][iEntry];
+                    obs->L1P = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_L2CDATA) {
-                    obs->_o.L2C = gnssData.measdata[iSat][iEntry];
+                    obs->L2C = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_L2PDATA) {
-                    obs->_o.L2P = gnssData.measdata[iSat][iEntry];
+                    obs->L2P = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_D1CDATA) {
-                    obs->_o.D1C = gnssData.measdata[iSat][iEntry];
+                    obs->D1C = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_D1PDATA) {
-                    obs->_o.D1P = gnssData.measdata[iSat][iEntry];
+                    obs->D1P = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_S1CDATA) {
-                    obs->_o.S1C = gnssData.measdata[iSat][iEntry];
+                    obs->S1C = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_S1PDATA) {
-                    obs->_o.S1P = gnssData.measdata[iSat][iEntry];
+                    obs->S1P = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_D2CDATA) {
-                    obs->_o.D2C = gnssData.measdata[iSat][iEntry];
+                    obs->D2C = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_D2PDATA) {
-                    obs->_o.D2P = gnssData.measdata[iSat][iEntry];
+                    obs->D2P = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_S2CDATA) {
-                    obs->_o.S2C = gnssData.measdata[iSat][iEntry];
+                    obs->S2C = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_S2PDATA) {
-                    obs->_o.S2P = gnssData.measdata[iSat][iEntry];
+                    obs->S2P = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_C5DATA) {
-                    obs->_o.C5  = gnssData.measdata[iSat][iEntry];
+                    obs->C5  = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_L5DATA) {
-                    obs->_o.L5  = gnssData.measdata[iSat][iEntry];
+                    obs->L5  = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_D5DATA) {
-                    obs->_o.D5  = gnssData.measdata[iSat][iEntry];
+                    obs->D5  = gnssData.measdata[iSat][iEntry];
                   }
                   else if (iEntry == GNSSENTRY_S5DATA) {
-                    obs->_o.S5  = gnssData.measdata[iSat][iEntry];
+                    obs->S5  = gnssData.measdata[iSat][iEntry];
                   }
                 }
Index: trunk/BNC/RTIGS/RTIGSDecoder.cpp
===================================================================
--- trunk/BNC/RTIGS/RTIGSDecoder.cpp	(revision 2708)
+++ trunk/BNC/RTIGS/RTIGSDecoder.cpp	(revision 2709)
@@ -118,15 +118,15 @@
       p_obs obs = new t_obs();
       _obsList.push_back(obs);
-      obs->_o.satSys   = 'G';
-      obs->_o.satNum   = _GPSTrans.DecObs.Obs[ii].sat_prn;
-      obs->_o.GPSWeek  = _GPSTrans.DecObs.Obs[ii].GPSTime / (7 * 86400);
-      obs->_o.GPSWeeks = _GPSTrans.DecObs.Obs[ii].GPSTime % (7 * 86400);
-      obs->_o.C1       = _GPSTrans.DecObs.Obs[ii].l1_pseudo_range;
-      obs->_o.P1       = _GPSTrans.DecObs.Obs[ii].p1_pseudo_range;
-      obs->_o.P2       = _GPSTrans.DecObs.Obs[ii].p2_pseudo_range;
-      obs->_o.L1P      = _GPSTrans.DecObs.Obs[ii].p1_phase;
-      obs->_o.L2P      = _GPSTrans.DecObs.Obs[ii].p2_phase;
-      obs->_o.S1P      = _GPSTrans.DecObs.Obs[ii].l1_sn;
-      obs->_o.S2P      = _GPSTrans.DecObs.Obs[ii].l2_sn;
+      obs->satSys   = 'G';
+      obs->satNum   = _GPSTrans.DecObs.Obs[ii].sat_prn;
+      obs->GPSWeek  = _GPSTrans.DecObs.Obs[ii].GPSTime / (7 * 86400);
+      obs->GPSWeeks = _GPSTrans.DecObs.Obs[ii].GPSTime % (7 * 86400);
+      obs->C1       = _GPSTrans.DecObs.Obs[ii].l1_pseudo_range;
+      obs->P1       = _GPSTrans.DecObs.Obs[ii].p1_pseudo_range;
+      obs->P2       = _GPSTrans.DecObs.Obs[ii].p2_pseudo_range;
+      obs->L1P      = _GPSTrans.DecObs.Obs[ii].p1_phase;
+      obs->L2P      = _GPSTrans.DecObs.Obs[ii].p2_phase;
+      obs->S1P      = _GPSTrans.DecObs.Obs[ii].l1_sn;
+      obs->S2P      = _GPSTrans.DecObs.Obs[ii].l2_sn;
     }
   }
Index: trunk/BNC/bnccaster.cpp
===================================================================
--- trunk/BNC/bnccaster.cpp	(revision 2708)
+++ trunk/BNC/bnccaster.cpp	(revision 2709)
@@ -56,19 +56,19 @@
 
   t_oldObsInternal(const t_obs* obs) {
-    strcpy(StatID, obs->_o.StatID);
+    strcpy(StatID, obs->StatID);
     flags         = 0;
-    satSys        = obs->_o.satSys;
-    satNum        = obs->_o.satNum;
-    slot          = obs->_o.slotNum;
-    GPSWeek       = obs->_o.GPSWeek;
-    GPSWeeks      = obs->_o.GPSWeeks;
-    C1            = obs->_o.C1;
-    C2            = obs->_o.C2;
-    P1            = obs->_o.P1;
-    P2            = obs->_o.P2;
+    satSys        = obs->satSys;
+    satNum        = obs->satNum;
+    slot          = obs->slotNum;
+    GPSWeek       = obs->GPSWeek;
+    GPSWeeks      = obs->GPSWeeks;
+    C1            = obs->C1;
+    C2            = obs->C2;
+    P1            = obs->P1;
+    P2            = obs->P2;
     L1            = obs->L1();
     L2            = obs->L2();
-    slip_cnt_L1   = obs->_o.slip_cnt_L1;
-    slip_cnt_L2   = obs->_o.slip_cnt_L2;
+    slip_cnt_L1   = obs->slip_cnt_L1;
+    slip_cnt_L2   = obs->slip_cnt_L2;
     lock_timei_L1 = -1;
     lock_timei_L2 = -1;
@@ -214,11 +214,11 @@
   obs->_status = t_obs::received;
 
-  long iSec    = long(floor(obs->_o.GPSWeeks+0.5));
-  long newTime = obs->_o.GPSWeek * 7*24*3600 + iSec;
+  long iSec    = long(floor(obs->GPSWeeks+0.5));
+  long newTime = obs->GPSWeek * 7*24*3600 + iSec;
 
   // Rename the Station
   // ------------------
-  strncpy(obs->_o.StatID, staID.constData(),sizeof(obs->_o.StatID));
-  obs->_o.StatID[sizeof(obs->_o.StatID)-1] = '\0';
+  strncpy(obs->StatID, staID.constData(),sizeof(obs->StatID));
+  obs->StatID[sizeof(obs->StatID)-1] = '\0';
         
   const char begObs[] = "BEGOBS";
@@ -244,6 +244,6 @@
         }
         else {
-          int numBytes = sizeof(obs->_o); 
-          if (myWrite(sock, (const char*)(&obs->_o), numBytes) != numBytes) {
+          int numBytes = sizeof(obs); 
+          if (myWrite(sock, (const char*)(&obs), numBytes) != numBytes) {
             ok = false;
           }
@@ -394,5 +394,5 @@
 
 	if (first) {
-	  QTime enomtime = QTime(0,0,0).addSecs(static_cast<int>(floor(obs->_o.GPSWeeks+0.5)));
+	  QTime enomtime = QTime(0,0,0).addSecs(static_cast<int>(floor(obs->GPSWeeks+0.5)));
 //        emit( newMessage( QString("Epoch %1 dumped").arg(enomtime.toString("HH:mm:ss")).toAscii(), true) ); // weber
 	}
@@ -404,9 +404,9 @@
           }
 
-          *_out << obs->_o.StatID << " " << obs->_o.GPSWeek << " ";  
+          *_out << obs->StatID << " " << obs->GPSWeek << " ";  
           _out->setRealNumberPrecision(7); 
-           *_out << obs->_o.GPSWeeks << " "; 
-
-           *_out << bncRinex::rinexSatLine(obs->_o, ' ', ' ', ' ').c_str() 
+           *_out << obs->GPSWeeks << " "; 
+
+           *_out << bncRinex::rinexSatLine(obs, ' ', ' ', ' ').c_str() 
                  << endl;
 
@@ -438,6 +438,6 @@
               }
               else {
-                int numBytes = sizeof(obs->_o); 
-                if (myWrite(sock, (const char*)(&obs->_o), numBytes) != numBytes) {
+                int numBytes = sizeof(obs); 
+                if (myWrite(sock, (const char*)(&obs), numBytes) != numBytes) {
                   ok = false;
                 }
Index: trunk/BNC/bncgetthread.cpp
===================================================================
--- trunk/BNC/bncgetthread.cpp	(revision 2708)
+++ trunk/BNC/bncgetthread.cpp	(revision 2709)
@@ -451,6 +451,6 @@
           const double secPerWeek = 7.0 * 24.0 * 3600.0;
           
-          double currSec = week            * secPerWeek + sec;
-          double obsSec  = obs->_o.GPSWeek * secPerWeek + obs->_o.GPSWeeks;
+          double currSec = week         * secPerWeek + sec;
+          double obsSec  = obs->GPSWeek * secPerWeek + obs->GPSWeeks;
 
           const double maxDt = 600.0;
@@ -466,6 +466,6 @@
         // ------------
         if (_rnx) {
-          long iSec    = long(floor(obs->_o.GPSWeeks+0.5));
-          long newTime = obs->_o.GPSWeek * 7*24*3600 + iSec;
+          long iSec    = long(floor(obs->GPSWeeks+0.5));
+          long newTime = obs->GPSWeek * 7*24*3600 + iSec;
           if (_samplingRate == 0 || iSec % _samplingRate == 0) {
             _rnx->deepCopy(obs);
Index: trunk/BNC/bncpppclient.cpp
===================================================================
--- trunk/BNC/bncpppclient.cpp	(revision 2708)
+++ trunk/BNC/bncpppclient.cpp	(revision 2709)
@@ -119,8 +119,6 @@
 //
 ////////////////////////////////////////////////////////////////////////////
-void bncPPPclient::putNewObs(p_obs pObs) {
+void bncPPPclient::putNewObs(p_obs obs) {
   QMutexLocker locker(&_mutex);
-
-  t_obsInternal* obs = &(pObs->_o);
 
   if (obs->satSys != 'G' && !_useGlonass) {
@@ -206,7 +204,7 @@
   // Set Phase Observations
   // ----------------------  
-  if (pObs->L1() && pObs->L2()) {
-    satData->L1 = pObs->L1() * t_CST::c / f1;
-    satData->L2 = pObs->L2() * t_CST::c / f2;
+  if (obs->L1() && obs->L2()) {
+    satData->L1 = obs->L1() * t_CST::c / f1;
+    satData->L2 = obs->L2() * t_CST::c / f2;
   }
   else {
Index: trunk/BNC/bncrinex.cpp
===================================================================
--- trunk/BNC/bncrinex.cpp	(revision 2708)
+++ trunk/BNC/bncrinex.cpp	(revision 2709)
@@ -520,5 +520,5 @@
 void bncRinex::deepCopy(const p_obs obs) {
   p_obs newObs = new t_obs();
-  memcpy(&newObs->_o, &obs->_o, sizeof(t_obsInternal));
+  memcpy(newObs, obs, sizeof(t_obs));
   _obs.push_back(newObs);
 }
@@ -534,5 +534,5 @@
   while (mIt.hasNext()) {
     p_obs obs = mIt.next();
-    if (obs->_o.GPSWeek * 7*24*3600 + obs->_o.GPSWeeks < maxTime - 0.05) {
+    if (obs->GPSWeek * 7*24*3600 + obs->GPSWeeks < maxTime - 0.05) {
       dumpList.push_back(obs);
       mIt.remove();
@@ -549,7 +549,7 @@
   // -------------
   p_obs fObs = *dumpList.begin();
-  QDateTime datTim    = dateAndTimeFromGPSweek(fObs->_o.GPSWeek, fObs->_o.GPSWeeks);
-  QDateTime datTimNom = dateAndTimeFromGPSweek(fObs->_o.GPSWeek, 
-                                               floor(fObs->_o.GPSWeeks+0.5));
+  QDateTime datTim    = dateAndTimeFromGPSweek(fObs->GPSWeek, fObs->GPSWeeks);
+  QDateTime datTimNom = dateAndTimeFromGPSweek(fObs->GPSWeek, 
+                                               floor(fObs->GPSWeeks+0.5));
 
   // Close the file
@@ -566,5 +566,5 @@
   }
 
-  double sec = double(datTim.time().second()) + fmod(fObs->_o.GPSWeeks,1.0);
+  double sec = double(datTim.time().second()) + fmod(fObs->GPSWeeks,1.0);
 
   // Epoch header line: RINEX Version 3
@@ -586,5 +586,5 @@
       iSat++;
       p_obs obs = it.next();
-      _out << obs->_o.satSys << setw(2) << obs->_o.satNum;
+      _out << obs->satSys << setw(2) << obs->satNum;
       if (iSat == 12 && it.hasNext()) {
         _out << endl << "                                ";
@@ -601,39 +601,39 @@
     // Cycle slips detection
     // ---------------------
-    QString prn = QString("%1%2").arg(obs->_o.satSys)
-                            .arg(obs->_o.satNum, 2, 10, QChar('0'));
+    QString prn = QString("%1%2").arg(obs->satSys)
+                            .arg(obs->satNum, 2, 10, QChar('0'));
 
     char lli1 = ' ';
     char lli2 = ' ';
     char lli5 = ' ';
-    if      ( obs->_o.slip_cnt_L1 >= 0 ) {
+    if      ( obs->slip_cnt_L1 >= 0 ) {
       if ( _slip_cnt_L1.find(prn)         != _slip_cnt_L1.end() && 
-           _slip_cnt_L1.find(prn).value() != obs->_o.slip_cnt_L1 ) {
+           _slip_cnt_L1.find(prn).value() != obs->slip_cnt_L1 ) {
         lli1 = '1';
       }
     }
 
-    if ( obs->_o.slip_cnt_L2 >= 0 ) {
+    if ( obs->slip_cnt_L2 >= 0 ) {
       if ( _slip_cnt_L2.find(prn)         != _slip_cnt_L2.end() && 
-           _slip_cnt_L2.find(prn).value() != obs->_o.slip_cnt_L2 ) {
+           _slip_cnt_L2.find(prn).value() != obs->slip_cnt_L2 ) {
         lli2 = '1';
       }
     }
 
-    if ( obs->_o.slip_cnt_L5 >= 0 ) {
+    if ( obs->slip_cnt_L5 >= 0 ) {
       if ( _slip_cnt_L5.find(prn)         != _slip_cnt_L5.end() && 
-           _slip_cnt_L5.find(prn).value() != obs->_o.slip_cnt_L5 ) {
+           _slip_cnt_L5.find(prn).value() != obs->slip_cnt_L5 ) {
         lli5 = '1';
       }
     }
 
-    _slip_cnt_L1[prn]   = obs->_o.slip_cnt_L1;
-    _slip_cnt_L2[prn]   = obs->_o.slip_cnt_L2;
-    _slip_cnt_L5[prn]   = obs->_o.slip_cnt_L5;
+    _slip_cnt_L1[prn]   = obs->slip_cnt_L1;
+    _slip_cnt_L2[prn]   = obs->slip_cnt_L2;
+    _slip_cnt_L5[prn]   = obs->slip_cnt_L5;
 
     // RINEX Version 3
     // ---------------
     if (_rinexVers == 3) {
-      _out << rinexSatLine(obs->_o, lli1, lli2, lli5); 
+      _out << rinexSatLine(obs, lli1, lli2, lli5); 
       _out << endl;
     }
@@ -642,10 +642,10 @@
     // ---------------
     else {
-      _out << setw(14) << setprecision(3) << obs->_o.C1 << ' '  << ' '
-           << setw(14) << setprecision(3) << obs->_o.P1 << ' '  << ' '
+      _out << setw(14) << setprecision(3) << obs->C1 << ' '  << ' '
+           << setw(14) << setprecision(3) << obs->P1 << ' '  << ' '
            << setw(14) << setprecision(3) << obs->L1()  << lli1 << ' '
            << setw(14) << setprecision(3) << obs->S1()  << ' '  << ' '
-           << setw(14) << setprecision(3) << obs->_o.C2 << ' '  << ' ' << endl
-           << setw(14) << setprecision(3) << obs->_o.P2 << ' '  << ' ' 
+           << setw(14) << setprecision(3) << obs->C2 << ' '  << ' ' << endl
+           << setw(14) << setprecision(3) << obs->P2 << ' '  << ' ' 
            << setw(14) << setprecision(3) << obs->L2()  << lli2 << ' '
            << setw(16) << setprecision(3) << obs->S2()  << endl;
@@ -679,76 +679,76 @@
 // One Line in RINEX v3 (static)
 ////////////////////////////////////////////////////////////////////////////
-string bncRinex::rinexSatLine(const t_obsInternal& obs, 
+string bncRinex::rinexSatLine(const t_obs* obs, 
                               char lli1, char lli2, char lli5) {
   ostringstream str;
   str.setf(ios::showpoint | ios::fixed);
 
-  if      (obs.satSys == 'G') { // GPS
-    str << obs.satSys 
-        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
-        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
-        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '
-        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L1P << lli1 << ' '
-        << setw(14) << setprecision(3) << obs.D1P << ' '  << ' '
-        << setw(14) << setprecision(3) << obs.S1P << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.P2  << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.L2P << lli2 << ' '
-        << setw(14) << setprecision(3) << obs.D2P << ' '  << ' '
-        << setw(14) << setprecision(3) << obs.S2P << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.C2  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L2C << lli2 << ' ' 
-        << setw(14) << setprecision(3) << obs.D2C << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.S2C << ' '  << ' '
-        << setw(14) << setprecision(3) << obs.C5  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L5  << lli5 << ' ' 
-        << setw(14) << setprecision(3) << obs.D5  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S5;
-  }
-  else if (obs.satSys == 'R') { // Glonass
-    str << obs.satSys 
-        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
-        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
-        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L1P << lli1 << ' '
-        << setw(14) << setprecision(3) << obs.D1P << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S1P << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.P2  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L2P << lli2 << ' ' 
-        << setw(14) << setprecision(3) << obs.D2P << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S2P << ' '  << ' '
-        << setw(14) << setprecision(3) << obs.C2  << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.L2C << lli2 << ' ' 
-        << setw(14) << setprecision(3) << obs.D2C << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S2C;
-  }
-  else if (obs.satSys == 'S') { // SBAS
-    str << obs.satSys 
-        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
-        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
-        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' '
-        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L1P << lli1 << ' '
-        << setw(14) << setprecision(3) << obs.D1P << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S1P;
-  }
-  else if (obs.satSys == 'E') { // Galileo
-    str << obs.satSys 
-        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
-        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
-        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' ' 
-        << setw(14) << setprecision(3) << obs.C5  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.L5  << lli5 << ' '
-        << setw(14) << setprecision(3) << obs.D5  << ' '  << ' '  
-        << setw(14) << setprecision(3) << obs.S5;
+  if      (obs->satSys == 'G') { // GPS
+    str << obs->satSys 
+        << setw(2) << setfill('0') << obs->satNum << setfill(' ')
+        << setw(14) << setprecision(3) << obs->C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
+        << setw(14) << setprecision(3) << obs->D1C << ' '  << ' '
+        << setw(14) << setprecision(3) << obs->S1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->P1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L1P << lli1 << ' '
+        << setw(14) << setprecision(3) << obs->D1P << ' '  << ' '
+        << setw(14) << setprecision(3) << obs->S1P << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->P2  << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->L2P << lli2 << ' '
+        << setw(14) << setprecision(3) << obs->D2P << ' '  << ' '
+        << setw(14) << setprecision(3) << obs->S2P << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->C2  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L2C << lli2 << ' ' 
+        << setw(14) << setprecision(3) << obs->D2C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->S2C << ' '  << ' '
+        << setw(14) << setprecision(3) << obs->C5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L5  << lli5 << ' ' 
+        << setw(14) << setprecision(3) << obs->D5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S5;
+  }
+  else if (obs->satSys == 'R') { // Glonass
+    str << obs->satSys 
+        << setw(2) << setfill('0') << obs->satNum << setfill(' ')
+        << setw(14) << setprecision(3) << obs->C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
+        << setw(14) << setprecision(3) << obs->D1C << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->P1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L1P << lli1 << ' '
+        << setw(14) << setprecision(3) << obs->D1P << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S1P << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->P2  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L2P << lli2 << ' ' 
+        << setw(14) << setprecision(3) << obs->D2P << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S2P << ' '  << ' '
+        << setw(14) << setprecision(3) << obs->C2  << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->L2C << lli2 << ' ' 
+        << setw(14) << setprecision(3) << obs->D2C << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S2C;
+  }
+  else if (obs->satSys == 'S') { // SBAS
+    str << obs->satSys 
+        << setw(2) << setfill('0') << obs->satNum << setfill(' ')
+        << setw(14) << setprecision(3) << obs->C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
+        << setw(14) << setprecision(3) << obs->D1C << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S1C << ' '  << ' '
+        << setw(14) << setprecision(3) << obs->P1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L1P << lli1 << ' '
+        << setw(14) << setprecision(3) << obs->D1P << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S1P;
+  }
+  else if (obs->satSys == 'E') { // Galileo
+    str << obs->satSys 
+        << setw(2) << setfill('0') << obs->satNum << setfill(' ')
+        << setw(14) << setprecision(3) << obs->C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
+        << setw(14) << setprecision(3) << obs->D1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->S1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs->C5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->L5  << lli5 << ' '
+        << setw(14) << setprecision(3) << obs->D5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs->S5;
   }
   return str.str();
Index: trunk/BNC/bncrinex.h
===================================================================
--- trunk/BNC/bncrinex.h	(revision 2708)
+++ trunk/BNC/bncrinex.h	(revision 2709)
@@ -55,5 +55,5 @@
    }
 
-   static std::string rinexSatLine(const t_obsInternal& obs, 
+   static std::string rinexSatLine(const t_obs* obs, 
                                    char lli1, char lli2, char lli5);
 
Index: trunk/BNC/latencychecker.cpp
===================================================================
--- trunk/BNC/latencychecker.cpp	(revision 2708)
+++ trunk/BNC/latencychecker.cpp	(revision 2709)
@@ -315,5 +315,5 @@
       p_obs obs = it.next();
       
-      _newSecGPS = static_cast<int>(obs->_o.GPSWeeks);
+      _newSecGPS = static_cast<int>(obs->GPSWeeks);
       if (_newSecGPS != _oldSecGPS) {
         if (_newSecGPS % _perfIntr < _oldSecGPS % _perfIntr) {
@@ -368,13 +368,13 @@
         currentGPSWeeks(week, sec);
         const double secPerWeek = 7.0 * 24.0 * 3600.0;
-        if (week < obs->_o.GPSWeek) {
+        if (week < obs->GPSWeek) {
           week += 1;
           sec  -= secPerWeek;
         }
-        if (week > obs->_o.GPSWeek) {
+        if (week > obs->GPSWeek) {
           week -= 1;
           sec  += secPerWeek;
         }
-         _curLat   = sec - obs->_o.GPSWeeks;
+         _curLat   = sec - obs->GPSWeeks;
         _sumLat  += _curLat;
         _sumLatQ += _curLat * _curLat;
