diff --git a/main/sorcery.c b/main/sorcery.c
index a739f5eb8cf89c07245494d52b5585594d7bf5be..1fb1b3c258fc79bc5390700fb3f97f1cab497097 100644
--- a/main/sorcery.c
+++ b/main/sorcery.c
@@ -508,13 +508,15 @@ int ast_sorcery_init(void)
 	};
 	ast_assert(wizards == NULL);
 
-	if (!(threadpool = ast_threadpool_create("Sorcery", NULL, &options))) {
-		threadpool = NULL;
+	threadpool = ast_threadpool_create("Sorcery", NULL, &options);
+	if (!threadpool) {
 		return -1;
 	}
 
-	if (!(wizards = ao2_container_alloc(WIZARD_BUCKETS, sorcery_wizard_hash, sorcery_wizard_cmp))) {
-		ast_threadpool_shutdown(threadpool);
+	wizards = ao2_container_alloc_hash(AO2_ALLOC_OPT_LOCK_MUTEX, 0, WIZARD_BUCKETS,
+		sorcery_wizard_hash, NULL, sorcery_wizard_cmp);
+	if (!wizards) {
+		sorcery_cleanup();
 		return -1;
 	}
 
@@ -524,8 +526,8 @@ int ast_sorcery_init(void)
 		return -1;
 	}
 
-	instances = ao2_container_alloc_options(AO2_ALLOC_OPT_LOCK_RWLOCK, INSTANCE_BUCKETS,
-		sorcery_instance_hash, sorcery_instance_cmp);
+	instances = ao2_container_alloc_hash(AO2_ALLOC_OPT_LOCK_RWLOCK, 0, INSTANCE_BUCKETS,
+		sorcery_instance_hash, NULL, sorcery_instance_cmp);
 	if (!instances) {
 		sorcery_cleanup();
 		return -1;
@@ -842,23 +844,30 @@ static struct ast_sorcery_object_type *sorcery_object_type_alloc(const char *typ
 		return NULL;
 	}
 
-	if (!(object_type->fields = ao2_container_alloc_options(AO2_ALLOC_OPT_LOCK_NOLOCK, OBJECT_FIELD_BUCKETS,
-					object_type_field_hash, object_type_field_cmp))) {
+	object_type->fields = ao2_container_alloc_hash(AO2_ALLOC_OPT_LOCK_NOLOCK, 0,
+		OBJECT_FIELD_BUCKETS, object_type_field_hash, NULL, object_type_field_cmp);
+	if (!object_type->fields) {
 		ao2_ref(object_type, -1);
 		return NULL;
 	}
 
-	if (!(object_type->observers = ao2_container_alloc_options(AO2_ALLOC_OPT_LOCK_RWLOCK, 1, NULL, NULL))) {
+	object_type->observers = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_RWLOCK, 0,
+		NULL, NULL);
+	if (!object_type->observers) {
 		ao2_ref(object_type, -1);
 		return NULL;
 	}
 
-	if (!(object_type->info = ast_calloc(1, sizeof(*object_type->info) + 2 * sizeof(object_type->info->files[0])))) {
+	object_type->info = ast_calloc(1,
+		sizeof(*object_type->info) + 2 * sizeof(object_type->info->files[0]));
+	if (!object_type->info) {
 		ao2_ref(object_type, -1);
 		return NULL;
 	}
 
-	if (!(object_type->file = ast_calloc(1, sizeof(*object_type->file) + 2 * sizeof(object_type->file->types[0])))) {
+	object_type->file = ast_calloc(1,
+		sizeof(*object_type->file) + 2 * sizeof(object_type->file->types[0]));
+	if (!object_type->file) {
 		ao2_ref(object_type, -1);
 		return NULL;
 	}