diff --git a/src/Main/Base/Project/Dom/IModelCollection.cs b/src/Main/Base/Project/Dom/IModelCollection.cs index efde573e4b..69f92760f6 100644 --- a/src/Main/Base/Project/Dom/IModelCollection.cs +++ b/src/Main/Base/Project/Dom/IModelCollection.cs @@ -21,7 +21,8 @@ namespace ICSharpCode.SharpDevelop.Dom public void AddHandler(ModelCollectionChangedEventHandler handler) { - _handlers.Add(handler); + if (handler != null) + _handlers.Add(handler); } public void RemoveHandler(ModelCollectionChangedEventHandler handler) @@ -31,10 +32,8 @@ namespace ICSharpCode.SharpDevelop.Dom public void Fire(IReadOnlyCollection removedItems, IReadOnlyCollection addedItems) { - foreach (var handler in _handlers) { - if (handler != null) { - handler(removedItems, addedItems); - } + foreach (var handler in _handlers.ToArray()) { + handler(removedItems, addedItems); } }