C# isn't really that low level. It's a strong-typed language yes, and it's being compiled into byte code before execution (just like Python!), but it's not low level. I'd put it on par with Java, except that it's much better. In any case, I know what you mean. But it's usually in higher level languages that you have certain limitations so you don't mess up things. Well, this discussion is more or less irrelevant, we're not really solving the problem at hand. ._. The worst thing is that if I leave that error, lots of scripts will break. The only alternative would be a warning instead of an error. But that's only an option if we know that change during iteration will mess up the current iteration and it's been changed since 1.8.x. If the same problem existed before, but simply didn't cause an error, we'll just remove it as well.