diff --git a/src/org/openstreetmap/josm/tools/ListenerList.java b/src/org/openstreetmap/josm/tools/ListenerList.java
index 0124811..3b045f0 100644
--- a/src/org/openstreetmap/josm/tools/ListenerList.java
+++ b/src/org/openstreetmap/josm/tools/ListenerList.java
@@ -149,9 +149,9 @@ public class ListenerList<T> {
         for (Iterator<WeakListener<T>> iterator = weakListeners.iterator(); iterator.hasNext();) {
             WeakListener<T> weakLink = iterator.next();
             T l = weakLink.listener.get();
-            if (l == null) {
-                iterator.remove();
-            } else {
+            if (l != null) {
+                // cleanup during add() should be enough to not cause memory leaks
+                // therefore, we ignore null listeners.
                 eventFirerer.fire(l);
             }
         }
