Index: trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- trunk/BNC/src/PPP/pppClient.cpp	(revision 5760)
+++ trunk/BNC/src/PPP/pppClient.cpp	(revision 5761)
@@ -74,8 +74,7 @@
 // Constructor
 //////////////////////////////////////////////////////////////////////////////
-t_pppClient::t_pppClient() {
-  _opt      = 0;
+t_pppClient::t_pppClient(const t_options* opt) {
   _output   = 0;
-  _antex    = 0;
+  _opt      = new t_options(*opt);
   _log      = new ostringstream();
   _ephPool  = new t_ephPool();
@@ -83,4 +82,12 @@
   _staRover = new t_station();
   _filter   = new t_filter();
+
+  if (!_opt->_antexFile.empty()) {
+    _antex = new bncAntex(_opt->_antexFile.c_str());
+  }
+  else {
+    _antex = 0;
+  }
+
   CLIENTS.setLocalData(this);  // CLIENTS takes ownership over "this"
 }
@@ -98,16 +105,4 @@
   delete _filter;
   clearObs();
-}
-
-// 
-//////////////////////////////////////////////////////////////////////////////
-void t_pppClient::setOptions(const t_options* opt) {
-  delete _opt;
-  _opt = new t_options(*opt);
-
-  delete _antex; _antex = 0;
-  if (!_opt->_antexFile.empty()) {
-    _antex = new bncAntex(_opt->_antexFile.c_str());
-  }
 }
 
Index: trunk/BNC/src/PPP/pppClient.h
===================================================================
--- trunk/BNC/src/PPP/pppClient.h	(revision 5760)
+++ trunk/BNC/src/PPP/pppClient.h	(revision 5761)
@@ -20,7 +20,7 @@
 class t_pppClient {
  public:
-  t_pppClient();                                                      
+  t_pppClient(const t_options* opt);                                                      
   ~t_pppClient();                                                     
-  void setOptions(const t_options* opt);                          
+
   void putGPSEphemeris(const t_ephGPS* eph);                  
   void putGloEphemeris(const t_ephGlo* eph);                  
@@ -30,13 +30,15 @@
   void processEpoch(int numSatRover, const t_pppSatObs* satObsRover,
                     t_output* output);                        
+
   const t_ephPool* ephPool() const {return _ephPool;}
   const t_obsPool* obsPool() const {return _obsPool;}
   const bncAntex*  antex() const {return _antex;}
   const t_station* staRover() const {return _staRover;}
-  double offGG() const {return _offGG;}
+  double           offGG() const {return _offGG;}
+
+  std::ostringstream& log() {return *_log;}
+  const t_options*    opt() const {return _opt;}
+
   static void bancroft(const Matrix& BBpass, ColumnVector& pos);
-
-  std::ostringstream* _log; 
-  t_options*          _opt; 
 
   static t_pppClient* instance();
@@ -64,17 +66,13 @@
   double                 _offGG;
   std::vector<t_satObs*> _obsRover;
-
+  std::ostringstream*    _log; 
+  t_options*             _opt; 
 };
 
 }; // namespace BNC
 
-// Pointer to the main object (thread-specific)
 #define PPP_CLIENT (BNC::t_pppClient::instance())
-
-// Log stream abbreviation
-#define LOG (*PPP_CLIENT->_log)
-
-// Options abbreviation
-#define OPT (PPP_CLIENT->_opt)
+#define LOG        (BNC::t_pppClient::instance()->log())
+#define OPT        (BNC::t_pppClient::instance()->opt())
 
 #endif
Index: trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- trunk/BNC/src/PPP/pppThread.cpp	(revision 5760)
+++ trunk/BNC/src/PPP/pppThread.cpp	(revision 5761)
@@ -100,5 +100,5 @@
             this, SLOT(slotNewCorrections(QStringList)));
 
-    _pppClient = new t_pppClient();
+    _pppClient = new t_pppClient(_opt);
   }
   else {
