diff --git a/curve_simplify.py b/curve_simplify.py
index e14b28570b087dc4336e20fd62c91ad2deff0a23..e0d59c60ded8527dfaf35de0480105d869ba4a8d 100644
--- a/curve_simplify.py
+++ b/curve_simplify.py
@@ -307,7 +307,7 @@ def main(context, obj, options, curve_dimension):
 
     # create new object and put into scene
     newCurve = bpy.data.objects.new("Simple_" + obj.name, curve)
-    coll = context.view_layer.collections.active.collection
+    coll = context.view_layer.active_layer_collection.collection
     coll.objects.link(newCurve)
     newCurve.select_set('SELECT')
 
diff --git a/io_scene_fbx/import_fbx.py b/io_scene_fbx/import_fbx.py
index 353a027fea2d40a792acb969de6d6d1a8bb8c493..0a8be6cf80b92bb3d6d8c4c0a65976d192dbc199 100644
--- a/io_scene_fbx/import_fbx.py
+++ b/io_scene_fbx/import_fbx.py
@@ -1970,7 +1970,7 @@ class FbxImportHelperNode:
                 child.build_skeleton_children(fbx_tmpl, settings, scene, view_layer)
 
             # instance in scene
-            view_layer.collections.active.collection.objects.link(obj)
+            view_layer.active_layer_collection.collection.objects.link(obj)
             obj.select_set('SELECT')
 
             return obj
@@ -2097,7 +2097,7 @@ class FbxImportHelperNode:
                     blen_read_custom_properties(self.fbx_elem, arm, settings)
 
             # instance in scene
-            view_layer.collections.active.collection.objects.link(arm)
+            view_layer.active_layer_collection.collection.objects.link(arm)
             arm.select_set('SELECT')
 
             # Add bones:
@@ -2140,7 +2140,7 @@ class FbxImportHelperNode:
                 child.build_hierarchy(fbx_tmpl, settings, scene, view_layer)
 
             # instance in scene
-            view_layer.collections.active.collection.objects.link(obj)
+            view_layer.active_layer_collection.collection.objects.link(obj)
             obj.select_set('SELECT')
 
             return obj
diff --git a/io_scene_obj/import_obj.py b/io_scene_obj/import_obj.py
index 84ea3706b33aa14ada6ad60540a539dc1f725d82..71810bcc6c1a253993558ae2f2b162ac19a61c08 100644
--- a/io_scene_obj/import_obj.py
+++ b/io_scene_obj/import_obj.py
@@ -1179,7 +1179,7 @@ def load(context,
             create_nurbs(context_nurbs, verts_loc, new_objects)
 
         view_layer = context.view_layer
-        collection = view_layer.collections.active.collection
+        collection = view_layer.active_layer_collection.collection
 
         # Create new obj
         for obj in new_objects:
diff --git a/object_print3d_utils/mesh_helpers.py b/object_print3d_utils/mesh_helpers.py
index 873f30d2267b1744229e677b98f25c1b47707b1c..44cce337a40470209c82e07335945fea51e0b2fe 100644
--- a/object_print3d_utils/mesh_helpers.py
+++ b/object_print3d_utils/mesh_helpers.py
@@ -158,12 +158,8 @@ def bmesh_check_thick_object(obj, thickness):
     context = bpy.context
     scene = context.scene
     layer = context.view_layer
-    layer_collection = context.layer_collection
-    if layer_collection is None:
-        scene_collection = scene.master_collection.collections.new("")
-        layer_collection = layer.collections.link(scene_collection)
-    else:
-        scene_collection = layer_collection.collection
+    layer_collection = context.layer_collection or layer.active_layer_collection
+    scene_collection = layer_collection.collection
 
     me_tmp = bpy.data.meshes.new(name="~temp~")
     bm.to_mesh(me_tmp)
@@ -241,12 +237,8 @@ def object_merge(context, objects):
 
     scene = context.scene
     layer = context.view_layer
-    layer_collection = context.layer_collection
-    if layer_collection is None:
-        scene_collection = scene.master_collection.collections.new("")
-        layer_collection = layer.collections.link(scene_collection)
-    else:
-        scene_collection = layer_collection.collection
+    layer_collection = context.layer_collection or layer.active_layer_collection
+    scene_collection = layer_collection.collection
 
     # deselect all
     for obj in scene.objects:
diff --git a/rigify/generate.py b/rigify/generate.py
index 948ece115f904baa6f5eda5e5d477557b833fdfd..b38bfd6d7ca9f18b3de1b2aba82e7748f87ae90e 100644
--- a/rigify/generate.py
+++ b/rigify/generate.py
@@ -521,7 +521,7 @@ def generate_rig(context, metarig):
 
     #----------------------------------
     # Restore active collection
-    view_layer.collections.active = layer_collection
+    view_layer.active_layer_collection = layer_collection
 
 
 def create_selection_sets(obj, metarig):
diff --git a/rigify/legacy/generate.py b/rigify/legacy/generate.py
index 9a39e333349f03b9af17d42b24ee274ad33e6c64..77c4e28e9dd0a2a37f043097f5b2f7a71e16885e 100644
--- a/rigify/legacy/generate.py
+++ b/rigify/legacy/generate.py
@@ -435,7 +435,7 @@ def generate_rig(context, metarig):
 
     #----------------------------------
     # Restore active collection
-    view_layer.collections.active = layer_collection
+    view_layer.active_layer_collection = layer_collection
 
 
 def get_bone_rigs(obj, bone_name, halt_on_missing=False):
diff --git a/rigify/legacy/utils.py b/rigify/legacy/utils.py
index 0f3a092e00e913083e74a1ddd924f486c4188938..1f01702237438545a20042fb8d9077dd99299e2d 100644
--- a/rigify/legacy/utils.py
+++ b/rigify/legacy/utils.py
@@ -965,9 +965,11 @@ def ensure_widget_collection(context):
 
         collection.children.link(widget_collection)
         widget_layer_collection = [c for c in layer_collection.children if c.collection == widget_collection][0]
+    elif widget_collection == view_layer.layer_collection.collection:
+        widget_layer_collection = view_layer.layer_collection
     else:
-        widget_layer_collection = get_layer_collection_from_collection(view_layer.collections, widget_collection)
+        widget_layer_collection = get_layer_collection_from_collection(view_layer.layer_collection.children, widget_collection)
 
     # Make the widget the active collection for the upcoming added (widget) objects
-    view_layer.collections.active = widget_layer_collection
+    view_layer.active_layer_collection = widget_layer_collection
     return widget_collection
diff --git a/rigify/utils.py b/rigify/utils.py
index 23596b3cf1b918c76c404925b8c0147dc459b304..2722659d574e3c6a7dd859395b17f2ecdd607592 100644
--- a/rigify/utils.py
+++ b/rigify/utils.py
@@ -1290,9 +1290,11 @@ def ensure_widget_collection(context):
 
         collection.children.link(widget_collection)
         widget_layer_collection = [c for c in layer_collection.children if c.collection == widget_collection][0]
+    elif widget_collection == view_layer.layer_collection.collection:
+        widget_layer_collection = view_layer.layer_collection
     else:
-        widget_layer_collection = get_layer_collection_from_collection(view_layer.collections, widget_collection)
+        widget_layer_collection = get_layer_collection_from_collection(view_layer.layer_collection.children, widget_collection)
 
     # Make the widget the active collection for the upcoming added (widget) objects
-    view_layer.collections.active = widget_layer_collection
+    view_layer.active_layer_collection = widget_layer_collection
     return widget_collection