diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 1c99066..dabc411 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -6288,6 +6288,8 @@
         return 0;
 
     pthread_mutex_lock(&adev_init_lock);
+    if (!device || ((struct audio_device *)device != adev))
+        goto done;
 
     if ((--audio_device_ref_count) == 0) {
         audio_extn_snd_mon_unregister_listener(adev);
@@ -6306,10 +6308,11 @@
             adev->adm_deinit(adev->adm_data);
         pthread_mutex_destroy(&adev->lock);
         free(device);
+        adev = NULL;
     }
 
+done:
     pthread_mutex_unlock(&adev_init_lock);
-
     return 0;
 }
 
diff --git a/post_proc/volume_listener.c b/post_proc/volume_listener.c
index ea26860..f356cff 100644
--- a/post_proc/volume_listener.c
+++ b/post_proc/volume_listener.c
@@ -764,9 +764,6 @@
     int status = -EINVAL;
     bool recompute_flag = false;
     int active_stream_count = 0;
-    uint32_t session_id;
-    uint32_t stream_type;
-    effect_uuid_t uuid;
 
     ALOGV("%s context %p", __func__, handle);
 
@@ -774,32 +771,20 @@
         return status;
     }
     pthread_mutex_lock(&vol_listner_init_lock);
-    session_id = recv_contex->session_id;
-    stream_type = recv_contex->stream_type;
-
-    if (recv_contex->desc == NULL) {
-        ALOGE("%s: Got NULL descriptor, session %u, stream type %u",
-                __func__, session_id, stream_type);
-        dump_list_l();
-        pthread_mutex_unlock(&vol_listner_init_lock);
-        return status;
-    }
-    uuid = recv_contex->desc->uuid;
 
     // check if the handle/context provided is valid
     list_for_each_safe(node, temp_node_next, &vol_effect_list) {
         context = node_to_item(node, struct vol_listener_context_s, effect_list_node);
-        if ((memcmp(&(context->desc->uuid), &uuid, sizeof(effect_uuid_t)) == 0)
-            && (context->session_id == session_id)
-            && (context->stream_type == stream_type)) {
+        if (context == recv_contex) {
             ALOGV("--- Found something to remove ---");
-            list_remove(node);
             PRINT_STREAM_TYPE(context->stream_type);
             if (valid_dev_in_context(context)) {
                 recompute_flag = true;
             }
+            list_remove(&context->effect_list_node);
             free(context);
             status = 0;
+            break;
         } else {
             ++active_stream_count;
         }
