diff --git a/source/blender/blenkernel/intern/geometry_set_instances.cc b/source/blender/blenkernel/intern/geometry_set_instances.cc
index b53f711b0ac6e5ff0f0ba8cb2329a3aa3392379f..b62e70f2ba2bf2287112704114634f06d49cd9cf 100644
--- a/source/blender/blenkernel/intern/geometry_set_instances.cc
+++ b/source/blender/blenkernel/intern/geometry_set_instances.cc
@@ -115,7 +115,11 @@ void Instances::ensure_geometry_instances()
       case InstanceReference::Type::Object: {
         /* Create a new reference that contains the geometry set of the object. We may want to
          * treat e.g. lamps and similar object types separately here. */
-        const Object &object = reference.object();
+        Object &object = reference.object();
+        if (ELEM(object.type, OB_LAMP, OB_CAMERA, OB_SPEAKER, OB_ARMATURE, OB_GPENCIL_LEGACY)) {
+          new_references.append(InstanceReference(object));
+          break;
+        }
         GeometrySet object_geometry_set = object_get_evaluated_geometry_set(object);
         if (object_geometry_set.has_instances()) {
           object_geometry_set.get_instances_for_write()->ensure_geometry_instances();