Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 865)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 867)
@@ -172,5 +172,5 @@
 		for (Layer.LayerChangeListener l : Layer.listeners)
 			l.layerAdded(layer);
-		if (layer instanceof OsmDataLayer) {
+		if (layer instanceof OsmDataLayer || activeLayer == null) {
 			// autoselect the new layer
 			Layer old = activeLayer;
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 865)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 867)
@@ -70,4 +70,6 @@
 			int sel = instance.getSelectedIndex();
 			Layer l = layer != null ? layer : (Layer)instance.getSelectedValue();
+			if(l == null)
+				return;
 			if (l instanceof OsmDataLayer)
 			{
@@ -103,4 +105,6 @@
 		public void actionPerformed(ActionEvent e) {
 			Layer l = layer == null ? (Layer)instance.getSelectedValue() : layer;
+			if(l == null)
+				return;
 			l.visible = !l.visible;
 			Main.map.mapView.repaint();
@@ -280,5 +284,5 @@
 		mergeButton.setEnabled(enable);
 		upButton.setEnabled(sel > 0);
-		downButton.setEnabled(sel < model.getSize()-1);
+		downButton.setEnabled(sel >= 0 && sel < model.getSize()-1);
 		deleteAction.setEnabled(!model.isEmpty());
 	}
