diff --git a/src/processor/processor_gnss_fix.cpp b/src/processor/processor_gnss_fix.cpp
index 77c6cb04a5b21ec991aecc1fe79e012198f1a490..cfedb4da63bf0dcf91acdc12f0a5c13d05219bde 100644
--- a/src/processor/processor_gnss_fix.cpp
+++ b/src/processor/processor_gnss_fix.cpp
@@ -167,7 +167,7 @@ bool ProcessorGnssFix::rejectOutlier(FactorBasePtr fac)
     auto gnss_ftr = std::static_pointer_cast<FeatureGnssFix>(fac->getFeature());
     // copy states
     Eigen::VectorXd x(gnss_ftr->getCapture()->getFrame()->getP()->getState());
-    Eigen::VectorXd o(gnss_ftr->getCapture()->getFrame()->getP()->getState());
+    Eigen::VectorXd o(gnss_ftr->getCapture()->getFrame()->getO()->getState());
     Eigen::VectorXd x_antena(sensor_gnss_->getP()->getState());
     Eigen::VectorXd t_ENU_map(sensor_gnss_->getEnuMapTranslation()->getState());
     Eigen::VectorXd roll_ENU_map(sensor_gnss_->getEnuMapRoll()->getState());