diff --git a/res/res_resolver_unbound.c b/res/res_resolver_unbound.c
index 47cd883ceb35bf15ac2a8cef9850565a6a196e4f..84d61e7c78b328d63a1a5603dffad3c5d708abe4 100644
--- a/res/res_resolver_unbound.c
+++ b/res/res_resolver_unbound.c
@@ -290,6 +290,7 @@ static int unbound_resolver_resolve(struct ast_dns_query *query)
 {
 	struct unbound_config *cfg = ao2_global_obj_ref(globals);
 	struct unbound_resolver_data *data;
+	struct ub_result *ub_result;
 	int res;
 
 	data = ao2_alloc_options(sizeof(*data), unbound_resolver_data_dtor,
@@ -302,9 +303,11 @@ static int unbound_resolver_resolve(struct ast_dns_query *query)
 	data->resolver = ao2_bump(cfg->global->state->resolver);
 	ast_dns_resolver_set_data(query, data);
 
-	res = ub_resolve_async(data->resolver->context, ast_dns_query_get_name(query),
+	res = ub_resolve(data->resolver->context, ast_dns_query_get_name(query),
 		ast_dns_query_get_rr_type(query), ast_dns_query_get_rr_class(query),
-		ao2_bump(query), unbound_resolver_callback, &data->id);
+		&ub_result);
+
+	unbound_resolver_callback(ao2_bump(query), res, ub_result);
 
 	if (res) {
 		ast_log(LOG_ERROR, "Failed to perform async DNS resolution of '%s'\n",