diff --git a/fm_hci/fm_hci.c b/fm_hci/fm_hci.c
index a3666af1fe0b015251fffe70cccd51611128f87c..c48edd5f55cbbcae6242092df18eb170c2bfd32c 100644
--- a/fm_hci/fm_hci.c
+++ b/fm_hci/fm_hci.c
@@ -338,7 +338,8 @@ static void* hci_tx_thread(void *arg)
 
     while (lib_running) {
         pthread_mutex_lock(&hci->event_lock);
-        pthread_cond_wait(&hci->event_cond, &hci->event_lock);
+        if (!(ready_events & HC_EVENT_TX))
+            pthread_cond_wait(&hci->event_cond, &hci->event_lock);
         ALOGE("%s: ready_events= %d", __func__, ready_events);
         events = ready_events;
         if (ready_events & HC_EVENT_TX)