Index: applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/DrawBuildingAction.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/DrawBuildingAction.java	(revision 35915)
+++ applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/DrawBuildingAction.java	(revision 35916)
@@ -55,5 +55,4 @@
     private final Cursor cursorJoinNode;
     private final Cursor cursorJoinWay;
-    private Cursor currCursor;
     private Cursor customCursor;
 
@@ -81,5 +80,4 @@
                 ImageProvider.getCursor("crosshair", null));
 
-        currCursor = getCursor();
         cursorJoinNode = ImageProvider.getCursor("crosshair", "joinnode");
         cursorJoinWay = ImageProvider.getCursor("crosshair", "joinway");
@@ -105,19 +103,5 @@
      */
     private void setCursor(final Cursor c) {
-        if (currCursor.equals(c))
-            return;
-        try {
-            // We invoke this to prevent strange things from happening
-            EventQueue.invokeLater(() -> {
-                MapFrame map = MainApplication.getMap();
-                // Don't change cursor when mode has changed already
-                if (map == null || !(map.mapMode instanceof DrawBuildingAction))
-                    return;
-                map.mapView.setCursor(c);
-            });
-            currCursor = c;
-        } catch (Exception e) {
-            Logging.error(e);
-        }
+        MainApplication.getMap().mapView.setNewCursor(c, this);
     }
 
