diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c index 33287d5a2f8..a3782deecad 100644 --- a/source/blender/blenkernel/intern/collection.c +++ b/source/blender/blenkernel/intern/collection.c @@ -683,8 +683,9 @@ static void collection_missing_parents_remove(Collection *collection) { for (CollectionParent *parent = collection->parents.first, *parent_next; parent != NULL; parent = parent_next) { parent_next = parent->next; - - if (!collection_find_child(parent->collection, collection)) { + if ((parent->collection == NULL) || + !collection_find_child(parent->collection, collection)) + { BLI_freelinkN(&collection->parents, parent); } } diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c index 9428e1508a4..ab50cf8b0a8 100644 --- a/source/blender/blenkernel/intern/library_query.c +++ b/source/blender/blenkernel/intern/library_query.c @@ -747,6 +747,9 @@ void BKE_library_foreach_ID_link(Main *bmain, ID *id, LibraryIDLinkCallback call for (CollectionChild *child = collection->children.first; child; child = child->next) { CALLBACK_INVOKE(child->collection, IDWALK_CB_USER); } + for (CollectionParent *parent = collection->parents.first; parent; parent = parent->next) { + CALLBACK_INVOKE(parent->collection, IDWALK_CB_NOP); + } break; }