diff --git a/helium/Android.mk b/helium/Android.mk
index 068308b..4008dd6 100644
--- a/helium/Android.mk
+++ b/helium/Android.mk
@@ -5,8 +5,8 @@
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES:= \
-	radio_helium_hal.c \
-	radio_helium_hal_cmds.c
+        radio_helium_hal.c \
+        radio_helium_hal_cmds.c
 
 LOCAL_SHARED_LIBRARIES := \
          libfm-hci \
diff --git a/helium/radio_helium_hal.c b/helium/radio_helium_hal.c
index 5d9137e..1109ca3 100644
--- a/helium/radio_helium_hal.c
+++ b/helium/radio_helium_hal.c
@@ -116,9 +116,6 @@
     if (hal->radio->mode == FM_TURNING_OFF) {
         ALOGD("%s:calling fm close\n", LOG_TAG );
         fm_hci_close(hal->private_data);
-        hal->radio->mode = FM_OFF;
-        hal->jni_cb->disabled_cb();
-        hal->jni_cb->thread_evt_cb(1);
     }
 }
 
@@ -823,8 +820,6 @@
 {
    ALOGE("%s:%s: start", LOG_TAG, __func__);
    fm_hci_close(hal->private_data);
-   hal->jni_cb->disabled_cb();
-   hal->jni_cb->thread_evt_cb(1);
 }
 
 static void hci_buff_ert(struct rds_grp_data *rds_buf)
@@ -1034,6 +1029,18 @@
     return 0;
 }
 
+int fm_hci_close_done()
+{
+    ALOGI("fm_hci_close_done");
+    if(hal != NULL){
+        ALOGI("Notifying FM OFF to JNI");
+        hal->radio->mode = FM_OFF;
+        hal->jni_cb->disabled_cb();
+        hal->jni_cb->thread_evt_cb(1);
+    }
+    return 0;
+}
+
 int helium_search_req(int on, int direct)
 {
     int retval = 0;
@@ -1132,7 +1139,8 @@
 
 /* Callback function to be registered with FM-HCI for event notification */
 static struct fm_hci_callbacks_t hal_cb = {
-    process_event
+    process_event,
+    fm_hci_close_done
 };
 
 int hal_init(fm_hal_callbacks_t *cb)
diff --git a/helium/radio_helium_hal_cmds.c b/helium/radio_helium_hal_cmds.c
index b783c53..a8fc305 100644
--- a/helium/radio_helium_hal_cmds.c
+++ b/helium/radio_helium_hal_cmds.c
@@ -41,19 +41,19 @@
 
 static int send_fm_cmd_pkt(uint16_t opcode,  uint32_t len, void *param)
 {
-    int p_len = 4 + len;
+    int p_len = 3 + len;
     int ret = 0;
     ALOGV("Send_fm_cmd_pkt, opcode: %x", opcode);
-//    pthread_mutex_lock(&fm_hal);
+
     struct fm_command_header_t *hdr = (struct fm_command_header_t *) malloc(p_len);
     if (!hdr) {
         ALOGE("%s:hdr allocation failed", LOG_TAG);
         return -FM_HC_STATUS_NOMEM;
     }
 
+    memset(hdr, 0, p_len);
     ALOGV("%s:opcode: %x", LOG_TAG, opcode);
 
-    hdr->pi = RADIO_HCI_COMMAND_PKT;
     hdr->opcode = opcode;
     hdr->len = len;
     if (len)
