diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp
index 0b3ae0ca75a68546e12a949de30afbfb01635eb9..0eb5ab16d2b35bd1e189088c77c4e8557b4a27b6 100644
--- a/src/gnss_utils.cpp
+++ b/src/gnss_utils.cpp
@@ -6,12 +6,9 @@ namespace GNSSUtils
             const std::shared_ptr<GNSSUtils::Navigation> & _navigation,
             sol_t & _sol)
   {
-    // Define observations
-    std::vector<obsd_t> obs = _observations->getObservations();
 
-    // Define navigation
-    nav_t nav = _navigation->getNavigation();
-    uniqnav(&nav);
+    // Remove duplicated satellites
+    uniqnav(&(_navigation->getNavigation()));
 
     // Define processing options
     prcopt_t prcopt = prcopt_default;
@@ -33,7 +30,9 @@ namespace GNSSUtils
     // Define error msg
     char msg[128]="";
 
-    int stat = pntpos(&(obs[0]), obs.size(), &nav, &prcopt, &_sol, NULL, NULL, msg);
+    int stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(),
+                      &(_navigation->getNavigation()),
+                      &prcopt, &_sol, NULL, NULL, msg);
 
     return stat;
   }
diff --git a/src/navigation.cpp b/src/navigation.cpp
index c74fe012d9a4cad73e2ba2bf9fa5a5725c85545f..0bdf9edee36de392231cbee5b9fbaf127a340725 100644
--- a/src/navigation.cpp
+++ b/src/navigation.cpp
@@ -59,7 +59,7 @@ void Navigation::allocateEphemeris(int n_sat)
 }
 void Navigation::deleteEphemeris()
 {
-  free(_nav.eph);
+  free(nav_.eph);
 }
 
 void Navigation::allocateGLONASSEphemeris(int n_sat)
@@ -84,7 +84,7 @@ void Navigation::allocateGLONASSEphemeris(int n_sat)
 }
 void Navigation::deleteGLONASSEphemeris()
 {
-  free(_nav->geph);
+  free(nav_.geph);
   // if (_nav->geph)
   // {
   //   free(_nav->geph);
@@ -118,7 +118,7 @@ void Navigation::allocateSBASEphemeris(int n_sat)
 }
 void Navigation::deleteSBASEphemeris()
 {
-  free(_nav->seph);
+  free(nav_.seph);
   // if (_nav->seph)
   // {
   //   free(_nav->seph);
@@ -151,7 +151,7 @@ void Navigation::allocateAlmanac(int n_sat)
 }
 void Navigation::deleteAlmanac()
 {
-  free(_nav->alm);
+  free(nav_.alm);
 
   // if (_nav->alm)
   // {