diff --git a/bluetooth/bluetooth_hci.cc b/bluetooth/bluetooth_hci.cc
index fa14b53..fe2b782 100644
--- a/bluetooth/bluetooth_hci.cc
+++ b/bluetooth/bluetooth_hci.cc
@@ -32,6 +32,9 @@
 
 using android::hardware::hidl_vec;
 
+BluetoothHci::BluetoothHci()
+    : deathRecipient(new BluetoothDeathRecipient(this)) {}
+
 Return<void> BluetoothHci::initialize(
     const ::android::sp<IBluetoothHciCallbacks>& cb) {
   ALOGI("BluetoothHci::initialize()");
@@ -44,6 +47,7 @@
   }
 
   event_cb_ = cb;
+  event_cb_->linkToDeath(deathRecipient, 0);
 
   hci_ = new hci::H4Protocol(
       hci_tty_fd_,
@@ -88,6 +92,8 @@
     hci_tty_fd_ = -1;
   }
 
+  event_cb_->unlinkToDeath(deathRecipient);
+
   if (hci_ != nullptr) {
     delete hci_;
     hci_ = nullptr;
diff --git a/bluetooth/bluetooth_hci.h b/bluetooth/bluetooth_hci.h
index 484a6ab..2f1015a 100644
--- a/bluetooth/bluetooth_hci.h
+++ b/bluetooth/bluetooth_hci.h
@@ -32,8 +32,20 @@
 using ::android::hardware::Return;
 using ::android::hardware::hidl_vec;
 
+struct BluetoothDeathRecipient : hidl_death_recipient {
+  BluetoothDeathRecipient(const sp<IBluetoothHci> hci) : mHci(hci) {}
+
+  virtual void serviceDied(
+      uint64_t /*cookie*/,
+      const wp<::android::hidl::base::V1_0::IBase>& /*who*/) {
+    mHci->close();
+  }
+  sp<IBluetoothHci> mHci;
+};
+
 class BluetoothHci : public IBluetoothHci {
  public:
+  BluetoothHci();
   Return<void> initialize(
       const ::android::sp<IBluetoothHciCallbacks>& cb) override;
   Return<void> sendHciCommand(const hidl_vec<uint8_t>& packet) override;
@@ -50,6 +62,8 @@
   async::AsyncFdWatcher fd_watcher_;
 
   hci::H4Protocol* hci_;
+
+  ::android::sp<BluetoothDeathRecipient> deathRecipient;
 };
 
 }  // namespace hikey
