diff --git a/qcwcn/wifi_hal/nan_ind.cpp b/qcwcn/wifi_hal/nan_ind.cpp
index 39e8a9e..026928d 100644
--- a/qcwcn/wifi_hal/nan_ind.cpp
+++ b/qcwcn/wifi_hal/nan_ind.cpp
@@ -320,10 +320,10 @@
                                              &event->peer_sdea_params);
             break;
         case NAN_TLV_TYPE_NAN_RANGE_RESULT:
-            if (outputTlv.length > sizeof(event->range_result)) {
-                outputTlv.length = sizeof(event->range_result);
+            if (outputTlv.length > sizeof(event->range_info)) {
+                outputTlv.length = sizeof(event->range_info);
             }
-            memcpy(&event->range_result, outputTlv.value, outputTlv.length);
+            memcpy(&event->range_info, outputTlv.value, outputTlv.length);
             break;
         default:
             ALOGV("Unknown TLV type skipped");
diff --git a/qcwcn/wifi_hal/nan_req.cpp b/qcwcn/wifi_hal/nan_req.cpp
index 4853d68..e0d4c5d 100644
--- a/qcwcn/wifi_hal/nan_req.cpp
+++ b/qcwcn/wifi_hal/nan_req.cpp
@@ -136,10 +136,6 @@
            sizeof(u32)) : 0 \
         ) + \
         (
-           pReq->config_responder_auto_response ? (SIZEOF_TLV_HDR + \
-           sizeof(u32)) : 0 \
-        ) + \
-        (
            pReq->discovery_indication_cfg ? (SIZEOF_TLV_HDR + \
            sizeof(u32)) : 0 \
         );
@@ -291,11 +287,6 @@
                       sizeof(u32),
                       (const u8*)&pReq->disc_mac_addr_rand_interval_sec, tlvs);
     }
-    if (pReq->config_responder_auto_response) {
-        tlvs = addTlv(NAN_TLV_TYPE_RANGING_AUTO_RESPONSE_CFG,
-                      sizeof(u32),
-                      (const u8*)&pReq->ranging_auto_response_cfg, tlvs);
-    }
     if (pReq->discovery_indication_cfg) {
         NanConfigDiscoveryIndications discovery_indications;
         discovery_indications.disableDiscoveryMacAddressEvent =
@@ -423,10 +414,6 @@
            sizeof(u32)) : 0 \
         ) + \
         (
-           pReq->config_responder_auto_response ? (SIZEOF_TLV_HDR + \
-           sizeof(u32)) : 0 \
-        )  + \
-        (
            pReq->discovery_indication_cfg ? (SIZEOF_TLV_HDR + \
            sizeof(u32)) : 0 \
         );
@@ -537,11 +524,6 @@
                       sizeof(u32),
                       (const u8*)&pReq->disc_mac_addr_rand_interval_sec, tlvs);
     }
-    if (pReq->config_responder_auto_response) {
-        tlvs = addTlv(NAN_TLV_TYPE_RANGING_AUTO_RESPONSE_CFG,
-                      sizeof(u32),
-                      (const u8*)&pReq->ranging_auto_response_cfg, tlvs);
-    }
 
     if (pReq->discovery_indication_cfg) {
         NanConfigDiscoveryIndications discovery_indications;
