diff --git a/android/location_api/LocationUtil.cpp b/android/location_api/LocationUtil.cpp
index dbafe5d..d782375 100644
--- a/android/location_api/LocationUtil.cpp
+++ b/android/location_api/LocationUtil.cpp
@@ -46,21 +46,23 @@
         out.gnssLocationFlags |= GnssLocationFlags::HAS_SPEED;
     if (in.flags & LOCATION_HAS_BEARING_BIT)
         out.gnssLocationFlags |= GnssLocationFlags::HAS_BEARING;
-    if (in.flags & LOCATION_HAS_ACCURACY_BIT) {
+    if (in.flags & LOCATION_HAS_ACCURACY_BIT)
         out.gnssLocationFlags |= GnssLocationFlags::HAS_HORIZONTAL_ACCURACY;
-        //out.gnssLocationFlags |= GnssLocationFlags::HAS_VERTICAL_ACCURACY;
-        //out.gnssLocationFlags |= GnssLocationFlags::HAS_SPEED_ACCURACY;
-        //out.gnssLocationFlags |= GnssLocationFlags::HAS_BEARING_ACCURACY;
-    }
+    if (in.flags & LOCATION_HAS_VERTICAL_ACCURACY_BIT)
+        out.gnssLocationFlags |= GnssLocationFlags::HAS_VERTICAL_ACCURACY;
+    if (in.flags & LOCATION_HAS_SPEED_ACCURACY_BIT)
+        out.gnssLocationFlags |= GnssLocationFlags::HAS_SPEED_ACCURACY;
+    if (in.flags & LOCATION_HAS_BEARING_ACCURACY_BIT)
+        out.gnssLocationFlags |= GnssLocationFlags::HAS_BEARING_ACCURACY;
     out.latitudeDegrees = in.latitude;
     out.longitudeDegrees = in.longitude;
     out.altitudeMeters = in.altitude;
     out.speedMetersPerSec = in.speed;
     out.bearingDegrees = in.bearing;
     out.horizontalAccuracyMeters = in.accuracy;
-    //out.verticalAccuracyMeters = in.accuracy;
-    //out.speedAccuracyMetersPerSecond = in.accuracy;
-    //out.bearingAccuracyDegrees = in.accuracy;
+    out.verticalAccuracyMeters = in.verticalAccuracy;
+    out.speedAccuracyMetersPerSecond = in.speedAccuracy;
+    out.bearingAccuracyDegrees = in.bearingAccuracy;
     out.timestamp = static_cast<GnssUtcTime>(in.timestamp);
 }
 
diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp
index 6cce9d1..0c309d2 100644
--- a/gnss/GnssAdapter.cpp
+++ b/gnss/GnssAdapter.cpp
@@ -113,6 +113,7 @@
 
 void
 GnssAdapter::convertLocation(Location& out, const LocGpsLocation& locGpsLocation,
+                             const GpsLocationExtended& locationExtended,
                              const LocPosTechMask techMask)
 {
     out.size = sizeof(Location);
@@ -137,6 +138,18 @@
         out.flags |= LOCATION_HAS_ACCURACY_BIT;
         out.accuracy = locGpsLocation.accuracy;
     }
+    if (GPS_LOCATION_EXTENDED_HAS_VERT_UNC & locationExtended.flags) {
+        out.flags |= LOCATION_HAS_VERTICAL_ACCURACY_BIT;
+        out.verticalAccuracy = locationExtended.vert_unc;
+    }
+    if (GPS_LOCATION_EXTENDED_HAS_SPEED_UNC & locationExtended.flags) {
+        out.flags |= LOCATION_HAS_SPEED_ACCURACY_BIT;
+        out.speedAccuracy = locationExtended.speed_unc;
+    }
+    if (GPS_LOCATION_EXTENDED_HAS_BEARING_UNC & locationExtended.flags) {
+        out.flags |= LOCATION_HAS_BEARING_ACCURACY_BIT;
+        out.bearingAccuracy = locationExtended.bearing_unc;
+    }
     out.timestamp = locGpsLocation.timestamp;
     if (LOC_POS_TECH_MASK_SATELLITE & techMask) {
         out.techMask |= LOCATION_TECHNOLOGY_GNSS_BIT;
@@ -171,18 +184,6 @@
         out.flags |= GNSS_LOCATION_INFO_MAGNETIC_DEVIATION_BIT;
         out.magneticDeviation = locationExtended.magneticDeviation;
     }
-    if (GPS_LOCATION_EXTENDED_HAS_VERT_UNC & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_VER_ACCURACY_BIT;
-        out.verAccuracy = locationExtended.vert_unc;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_SPEED_UNC & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_SPEED_ACCURACY_BIT;
-        out.speedAccuracy = locationExtended.speed_unc;
-    }
-    if (GPS_LOCATION_EXTENDED_HAS_BEARING_UNC & locationExtended.flags) {
-        out.flags |= GNSS_LOCATION_INFO_BEARING_ACCURACY_BIT;
-        out.bearingAccuracy = locationExtended.bearing_unc;
-    }
     if (GPS_LOCATION_EXTENDED_HAS_HOR_RELIABILITY & locationExtended.flags) {
         out.flags |= GNSS_LOCATION_INFO_HOR_RELIABILITY_BIT;
         switch (locationExtended.horizontal_reliability) {
@@ -1858,7 +1859,7 @@
         for (auto it=mClientData.begin(); it != mClientData.end(); ++it) {
             if (nullptr != it->second.trackingCb) {
                 Location location = {};
-                convertLocation(location, ulpLocation.gpsLocation, techMask);
+                convertLocation(location, ulpLocation.gpsLocation, locationExtended, techMask);
                 it->second.trackingCb(location);
             }
             if (nullptr != it->second.gnssLocationInfoCb) {
diff --git a/gnss/GnssAdapter.h b/gnss/GnssAdapter.h
index f5a5300..24af4f6 100644
--- a/gnss/GnssAdapter.h
+++ b/gnss/GnssAdapter.h
@@ -103,6 +103,7 @@
     /*==== CONVERSION ===================================================================*/
     static void convertOptions(LocPosMode& out, const LocationOptions& options);
     static void convertLocation(Location& out, const LocGpsLocation& locGpsLocation,
+                                const GpsLocationExtended& locationExtended,
                                 const LocPosTechMask techMask);
     static void convertLocationInfo(GnssLocationInfoNotification& out,
                                     const GpsLocationExtended& locationExtended);
diff --git a/location/LocationAPI.h b/location/LocationAPI.h
index cc15ddd..579aa42 100644
--- a/location/LocationAPI.h
+++ b/location/LocationAPI.h
@@ -52,11 +52,14 @@
 // Flags to indicate which values are valid in a Location
 typedef uint16_t LocationFlagsMask;
 typedef enum {
-    LOCATION_HAS_LAT_LONG_BIT = (1<<0), // location has valid latitude and longitude
-    LOCATION_HAS_ALTITUDE_BIT = (1<<1), // location has valid altitude
-    LOCATION_HAS_SPEED_BIT    = (1<<2), // location has valid speed
-    LOCATION_HAS_BEARING_BIT  = (1<<3), // location has valid bearing
-    LOCATION_HAS_ACCURACY_BIT = (1<<4), // location has valid accuracy
+    LOCATION_HAS_LAT_LONG_BIT          = (1<<0), // location has valid latitude and longitude
+    LOCATION_HAS_ALTITUDE_BIT          = (1<<1), // location has valid altitude
+    LOCATION_HAS_SPEED_BIT             = (1<<2), // location has valid speed
+    LOCATION_HAS_BEARING_BIT           = (1<<3), // location has valid bearing
+    LOCATION_HAS_ACCURACY_BIT          = (1<<4), // location has valid accuracy
+    LOCATION_HAS_VERTICAL_ACCURACY_BIT = (1<<5), // location has valid vertical accuracy
+    LOCATION_HAS_SPEED_ACCURACY_BIT    = (1<<6), // location has valid speed accuracy
+    LOCATION_HAS_BEARING_ACCURACY_BIT  = (1<<7), // location has valid bearing accuracy
 } LocationFlagsBits;
 
 typedef uint16_t LocationTechnologyMask;
@@ -80,14 +83,11 @@
     GNSS_LOCATION_INFO_ALTITUDE_MEAN_SEA_LEVEL_BIT      = (1<<0), // valid altitude mean sea level
     GNSS_LOCATION_INFO_DOP_BIT                          = (1<<1), // valid pdop, hdop, and vdop
     GNSS_LOCATION_INFO_MAGNETIC_DEVIATION_BIT           = (1<<2), // valid magnetic deviation
-    GNSS_LOCATION_INFO_VER_ACCURACY_BIT                 = (1<<3), // valid vertical accuracy
-    GNSS_LOCATION_INFO_SPEED_ACCURACY_BIT               = (1<<4), // valid speed accuracy
-    GNSS_LOCATION_INFO_BEARING_ACCURACY_BIT             = (1<<5), // valid bearing accuracy
-    GNSS_LOCATION_INFO_HOR_RELIABILITY_BIT              = (1<<6), // valid horizontal reliability
-    GNSS_LOCATION_INFO_VER_RELIABILITY_BIT              = (1<<7), // valid vertical reliability
-    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MAJOR_BIT = (1<<8), // valid elipsode semi major
-    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MINOR_BIT = (1<<9), // valid elipsode semi minor
-    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_AZIMUTH_BIT    = (1<<10),// valid accuracy elipsode azimuth
+    GNSS_LOCATION_INFO_HOR_RELIABILITY_BIT              = (1<<3), // valid horizontal reliability
+    GNSS_LOCATION_INFO_VER_RELIABILITY_BIT              = (1<<4), // valid vertical reliability
+    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MAJOR_BIT = (1<<5), // valid elipsode semi major
+    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_SEMI_MINOR_BIT = (1<<6), // valid elipsode semi minor
+    GNSS_LOCATION_INFO_HOR_ACCURACY_ELIP_AZIMUTH_BIT    = (1<<7),// valid accuracy elipsode azimuth
 } GnssLocationInfoFlagBits;
 
 typedef enum {
@@ -393,6 +393,9 @@
     float speed;             // in meters per second
     float bearing;           // in degrees; range [0, 360)
     float accuracy;          // in meters
+    float verticalAccuracy;  // in meters
+    float speedAccuracy;     // in meters/second
+    float bearingAccuracy;   // in degrees (0 to 359.999)
     LocationTechnologyMask techMask;
 } Location;
 
@@ -441,9 +444,6 @@
     float hdop;                         // horizontal dilusion of precision
     float vdop;                         // vertical dilusion of precision
     float magneticDeviation;            // magnetic deviation
-    float verAccuracy;                  // vertical accuracy in meters
-    float speedAccuracy;                // speed accuracy in meters/second
-    float bearingAccuracy;              // bearing accuracy in degrees (0 to 359.999)
     LocationReliability horReliability; // horizontal reliability
     LocationReliability verReliability; // vertical reliability
     float horUncEllipseSemiMajor;       // horizontal elliptical accuracy semi-major axis
