Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 8629)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 8631)
@@ -405,9 +405,10 @@
     public void addLayer(Layer layer) {
         boolean isOsmDataLayer = layer instanceof OsmDataLayer;
-        layerLock.writeLock().lock();
-        layerLock.readLock().lock();
         EnumSet<LayerListenerType> listenersToFire = EnumSet.noneOf(LayerListenerType.class);
         Layer oldActiveLayer = activeLayer;
         OsmDataLayer oldEditLayer = editLayer;
+
+        layerLock.writeLock().lock();
+        layerLock.readLock().lock();
         try {
             try {
@@ -530,10 +531,10 @@
      */
     public void removeLayer(Layer layer) {
-        layerLock.writeLock().lock();
-        layerLock.readLock().lock();
-
         EnumSet<LayerListenerType> listenersToFire = EnumSet.noneOf(LayerListenerType.class);
         Layer oldActiveLayer = activeLayer;
         OsmDataLayer oldEditLayer = editLayer;
+
+        layerLock.writeLock().lock();
+        layerLock.readLock().lock();
         try {
             try {
@@ -601,9 +602,10 @@
      */
     public void moveLayer(Layer layer, int pos) {
-        layerLock.writeLock().lock();
-        layerLock.readLock().lock();
         EnumSet<LayerListenerType> listenersToFire;
         Layer oldActiveLayer = activeLayer;
         OsmDataLayer oldEditLayer = editLayer;
+
+        layerLock.writeLock().lock();
+        layerLock.readLock().lock();
         try {
             try {
