Index: trunk/BNC/src/PPP/ppp.h
===================================================================
--- trunk/BNC/src/PPP/ppp.h	(revision 5783)
+++ trunk/BNC/src/PPP/ppp.h	(revision 5784)
@@ -71,7 +71,9 @@
 class t_pppSatObs {
  public:
-  t_prn                 _prn;
-  bncTime               _time;
-  std::vector<t_pppObs> _obs;
+  t_pppSatObs() {}
+  ~t_pppSatObs() {for (unsigned ii = 0; ii < _obs.size(); ii++) delete _obs[ii];}
+  t_prn                  _prn;
+  bncTime                _time;
+  std::vector<t_pppObs*> _obs;
 };
 
Index: trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- trunk/BNC/src/PPP/pppThread.cpp	(revision 5783)
+++ trunk/BNC/src/PPP/pppThread.cpp	(revision 5784)
@@ -209,4 +209,6 @@
             pppObs                = new t_pppObs();
             pppObsMap[rnxType2ch] = pppObs;
+            pppObs->_rnxType2ch   = rnxType2ch;
+            newObs->_obs.push_back(pppObs);
           }
           else {
@@ -225,5 +227,5 @@
     }
 
-    ////    pppSatObs.push_back(newObs);
+    pppSatObs.push_back(newObs);
   }
 
Index: trunk/BNC/src/PPP/satobs.cpp
===================================================================
--- trunk/BNC/src/PPP/satobs.cpp	(revision 5783)
+++ trunk/BNC/src/PPP/satobs.cpp	(revision 5784)
@@ -63,7 +63,7 @@
   _outlier    = false;
   for (unsigned ii = 0; ii < pppSatObs._obs.size(); ii++) {
-    const t_pppObs& obs = pppSatObs._obs[ii];
-    t_obsType obsType = string(obs._rnxType2ch).substr(0,2);
-    _allObs[obsType] = new t_pppObs(obs);
+    const t_pppObs* obs = pppSatObs._obs[ii];
+    t_obsType obsType = string(obs->_rnxType2ch).substr(0,2);
+    _allObs[obsType] = new t_pppObs(*obs);
   }
   prepareObs();
