diff --git a/fm_hci/fm_hci.c b/fm_hci/fm_hci.c
index 4793295..74c0ac9 100644
--- a/fm_hci/fm_hci.c
+++ b/fm_hci/fm_hci.c
@@ -268,12 +268,14 @@
 
 static void *hci_read_thread(void *arg)
 {
-    int length;
+    int length = 0;
     struct fm_hci_t *hci = (struct fm_hci_t *)arg;
 
     struct fm_event_header_t *evt_buf = (struct fm_event_header_t *) malloc(sizeof(struct fm_event_header_t) + MAX_FM_EVT_PARAMS);
 
-    length = read_fm_event(hci, evt_buf, sizeof(struct fm_event_header_t) + MAX_FM_EVT_PARAMS);
+    if (!evt_buf)
+        length = read_fm_event(hci, evt_buf, sizeof(struct fm_event_header_t) + MAX_FM_EVT_PARAMS);
+
     ALOGD("length=%d\n",length);
     if(length <=0) {
        lib_running =0;
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 762a969..80f800c 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -671,6 +671,9 @@
                         }
                     } else if( action.equals(Intent.ACTION_SHUTDOWN)) {
                         mAppShutdown = true;
+                        if (isFmRecordingOn()) {
+                            stopRecording();
+                        }
                     }
 
                 }
diff --git a/fmhalService/main.c b/fmhalService/main.c
index 558f681..6647f8b 100644
--- a/fmhalService/main.c
+++ b/fmhalService/main.c
@@ -342,7 +342,7 @@
 
 int main()  {
    fd_set client_fds;
-    int retval, n;
+    int retval = -1, n;
 
     ALOGI("%s: Entry ", __func__);
     ALOGI("FM HAL SERVICE: Loading the WCNSS HAL library...");
diff --git a/helium/radio_helium_hal.c b/helium/radio_helium_hal.c
index f22c6f5..a45fd48 100644
--- a/helium/radio_helium_hal.c
+++ b/helium/radio_helium_hal.c
@@ -323,7 +323,7 @@
 
 static void hci_cc_get_blend_tbl_rsp(char *ev_buff)
 {
-    int status, val;
+    int status, val = -1;
 
     if (ev_buff == NULL) {
         ALOGE("%s:response buffer in null", LOG_TAG);
@@ -360,11 +360,13 @@
 
 static void hci_cc_station_rsp(char *ev_buff)
 {
-    int val, status = ev_buff[0];
+    int val = -1, status = ev_buff[0];
+    unsigned char *tmp = (unsigned char *)(&hal->radio->fm_st_rsp.station_rsp)
+                                             + sizeof(char);
 
     if (status == FM_HC_STATUS_SUCCESS) {
-        memcpy(&hal->radio->fm_st_rsp.station_rsp.station_freq, &ev_buff[1],
-                sizeof(struct hci_fm_station_rsp) - sizeof(char));
+        memcpy(tmp, &ev_buff[1],
+                sizeof(struct hci_ev_tune_status) - sizeof(char));
         if (test_bit(station_param_mask_flag, CMD_STNPARAM_RSSI)) {
                 val = hal->radio->fm_st_rsp.station_rsp.rssi;
         } else if (test_bit(station_param_mask_flag, CMD_STNPARAM_SINR)) {
@@ -379,7 +381,7 @@
 
 static void hci_cc_dbg_param_rsp(char *ev_buff)
 {
-    int val, status = ev_buff[0];
+    int val = -1, status = ev_buff[0];
 
     if (status == FM_HC_STATUS_SUCCESS) {
         memcpy(&hal->radio->st_dbg_param, &ev_buff[1],
@@ -652,8 +654,10 @@
     data[3] = buff[RDS_PID_HIGHER];
     data[4] = buff[RT_A_B_FLAG_OFFSET];
 
-    memcpy(data+RDS_OFFSET, &buff[RDS_OFFSET], len);
-    data[len+RDS_OFFSET] = 0x00;
+    if (len > 0) {
+        memcpy(data+RDS_OFFSET, &buff[RDS_OFFSET], len);
+        data[len+RDS_OFFSET] = 0x00;
+    }
 
     hal->jni_cb->rt_update_cb(data);
     free(data);
