Deadlock ==> public IEnumerable<T> GetDrawObjects<T>(bool log = true) where T : DrawingTool

[quote=“Bart_Wical, post:1, topic:2734”]

Have you tried using a copy of the list:

        List<DrawingTool> snapshot;
        snapshot = DrawObjects.ToList();
        foreach (var o in snapshot)
        {
            if (o is T dt)