Index: /trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 683)
+++ /trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 684)
@@ -153,7 +153,9 @@
 		for (Layer.LayerChangeListener l : Layer.listeners)
 			l.layerAdded(layer);
-
 		// autoselect the new layer
+		Layer old = activeLayer;
 		setActiveLayer(layer);
+		for (Layer.LayerChangeListener l : Layer.listeners)
+			l.activeLayerChange(old, layer);
 		repaint();
 	}
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 683)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 684)
@@ -131,6 +131,6 @@
 	
 	public void activeLayerChange(Layer a, Layer b) {
-		if (a instanceof OsmDataLayer && b instanceof OsmDataLayer) {
-			((OsmDataLayer)a).listenerDataChanged.remove(this);
+		if ((a == null || a instanceof OsmDataLayer) && b instanceof OsmDataLayer) {
+			if (a != null) ((OsmDataLayer)a).listenerDataChanged.remove(this);
 			((OsmDataLayer)b).listenerDataChanged.add(this);
 			updateList();
