diff --git a/source/blender/blenkernel/intern/lib_id_delete.cc b/source/blender/blenkernel/intern/lib_id_delete.cc
index af524e888474d318db5cf50d9a89ead65a976a42..9020f1aa637e789ea6363014c7e1ed9188c96267 100644
--- a/source/blender/blenkernel/intern/lib_id_delete.cc
+++ b/source/blender/blenkernel/intern/lib_id_delete.cc
@@ -181,6 +181,8 @@ void BKE_id_free_ex(Main *bmain, void *idv, const int flag_orig, const bool use_
     BKE_layer_collection_resync_forbid();
   }
 
+  const ID_Type id_type = GS(static_cast<ID *>(idv)->name);
+
   int flag_final = id_free(bmain, idv, flag_orig, use_flag_from_idtag);
 
   if (bmain) {
@@ -189,7 +191,9 @@ void BKE_id_free_ex(Main *bmain, void *idv, const int flag_orig, const bool use_
     }
 
     if ((flag_final & LIB_ID_FREE_NO_MAIN) == 0) {
-      BKE_main_collection_sync_remap(bmain);
+      if (ELEM(id_type, ID_SCE, ID_GR, ID_OB)) {
+        BKE_main_collection_sync_remap(bmain);
+      }
     }
   }
 }