diff --git a/apps/app_queue.c b/apps/app_queue.c
index a1219e45f03de533b202d969d1cfc64da317e511..531297025be9326f898c6f18d90b8b8b2bd50662 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -2818,9 +2818,9 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
 		if (!datastore) {
 			if(!(datastore = ast_channel_datastore_alloc(&dialed_interface_info, NULL))) {
 				ao2_ref(cur, -1);
-				ast_mutex_unlock(&qe->parent->lock);
+				ao2_unlock(qe->parent);
 				if(use_weight)
-					AST_LIST_UNLOCK(&queues);
+					ao2_unlock(queues);
 				free(tmp);
 				goto out;
 			}
@@ -2843,9 +2843,9 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
 			if(!(di = ast_calloc(1, sizeof(*di) + strlen(cur->interface)))) {
 				ao2_ref(cur, -1);
 				AST_LIST_UNLOCK(dialed_interfaces);
-				ast_mutex_unlock(&qe->parent->lock);
+				ao2_unlock(qe->parent);
 				if(use_weight)
-					AST_LIST_UNLOCK(&queues);
+					ao2_unlock(queues);
 				free(tmp);
 				goto out;
 			}