Index: /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 2618)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 2619)
@@ -61,6 +61,32 @@
      * The listener of the active layer changes. You may register/deregister yourself
      * while an LayerChangeListener - action is executed.
-     */
+     * 
+     * @deprecated use {@see #addLayerChangeListener(LayerChangeListener)}
+     * and {@see #removeLayerChangeListener(LayerChangeListener)}
+     */
+    @Deprecated
     public static final Collection<LayerChangeListener> listeners = new CopyOnWriteArrayList<LayerChangeListener>();
+
+    /**
+     * Adds a layer change listener
+     * 
+     * @param listener the listener. Ignored if null or already registered.
+     */
+    public static void addLayerChangeListener(LayerChangeListener listener) {
+        if (listener != null && ! listeners.contains(listener)) {
+            listeners.add(listener);
+        }
+    }
+
+    /**
+     * Removes a layer change listener
+     * 
+     * @param listener the listener. Ignored if null or already registered.
+     */
+    public static void removeLayerChangeListener(LayerChangeListener listener) {
+        if (listener != null && listeners.contains(listener)) {
+            listeners.remove(listener);
+        }
+    }
 
     /**
