diff --git a/mesh/node.c b/mesh/node.c
index ed32126..93537c5 100644
--- a/mesh/node.c
+++ b/mesh/node.c
struct mesh_config_node *db_node)
{
const struct l_queue_entry *entry;
+ struct node_element *ele;
entry = l_queue_get_entries(db_node->elements);
if (!add_element_from_storage(node, entry->data))
return false;
+ ele = l_queue_find(node->elements, match_element_idx,
+ L_UINT_TO_PTR(PRIMARY_ELE_IDX));
+ if (!ele)
+ return false;
+
/* Add configuration server model on the primary element */
- mesh_model_add(node, PRIMARY_ELE_IDX, CONFIG_SRV_MODEL, NULL);
+ mesh_model_add(node, ele->models, CONFIG_SRV_MODEL, NULL);
/* Add remote provisioning models on the primary element */
- mesh_model_add(node, PRIMARY_ELE_IDX, REM_PROV_SRV_MODEL, NULL);
+ mesh_model_add(node, ele->models, REM_PROV_SRV_MODEL, NULL);
if (node->provisioner)
- mesh_model_add(node, PRIMARY_ELE_IDX, REM_PROV_CLI_MODEL, NULL);
+ mesh_model_add(node, ele->models, REM_PROV_CLI_MODEL, NULL);
return true;
}