Index: /trunk/geticons.pl
===================================================================
--- /trunk/geticons.pl	(revision 13276)
+++ /trunk/geticons.pl	(revision 13277)
@@ -23,4 +23,5 @@
   for my $file (glob($arg))
   {
+    my @defs;
     open(FILE,"<",$file) or die "Could not open $file\n";
     #print "Read file $file\n";
@@ -29,5 +30,13 @@
     while(my $l = <FILE>)
     {
+      if($l =~ /private static final String ([A-Z_]+) = ("[^"]+")/)
+      {
+        push(@defs, [$1, $2]);
+      }
       next if $l =~ /NO-ICON/;
+      for my $d (@defs)
+      {
+        $l =~ s/$d->[0]/$d->[1]/g;
+      }
       if($l =~ /icon\s*[:=]\s*["']([^"'+]+?)["']/)
       {
@@ -122,5 +131,5 @@
         ++$icons{$i};
       }
-      if($l =~ /setButtonIcons.*\{(.*)\}/)
+      if($l =~ /setButtonIcons.*\{(.*)\}/ || $l =~ /setButtonIcons\((.*)\)/ )
       {
         my $t = $1;
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 13276)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 13277)
@@ -62,5 +62,5 @@
         SelectionChangedListener, ModifierExListener {
 
-    private static final String CROSSHAIR = "crosshair";
+    private static final String CROSSHAIR = /* ICON(cursor/)*/ "crosshair";
 
     enum State {
@@ -81,11 +81,11 @@
     private boolean dragging;
 
-    private final Cursor cursorSelect = ImageProvider.getCursor("normal", "mode");
-    private final Cursor cursorSelectHover = ImageProvider.getCursor("hand", "mode");
+    private final Cursor cursorSelect = ImageProvider.getCursor(/* ICON(cursor/)*/ "normal", /* ICON(cursor/modifier/)*/ "mode");
+    private final Cursor cursorSelectHover = ImageProvider.getCursor(/* ICON(cursor/)*/ "hand", /* ICON(cursor/modifier/)*/ "mode");
     private final Cursor cursorImprove = ImageProvider.getCursor(CROSSHAIR, null);
-    private final Cursor cursorImproveAdd = ImageProvider.getCursor(CROSSHAIR, "addnode");
-    private final Cursor cursorImproveDelete = ImageProvider.getCursor(CROSSHAIR, "delete_node");
-    private final Cursor cursorImproveAddLock = ImageProvider.getCursor(CROSSHAIR, "add_node_lock");
-    private final Cursor cursorImproveLock = ImageProvider.getCursor(CROSSHAIR, "lock");
+    private final Cursor cursorImproveAdd = ImageProvider.getCursor(CROSSHAIR, /* ICON(cursor/modifier/)*/ "addnode");
+    private final Cursor cursorImproveDelete = ImageProvider.getCursor(CROSSHAIR, /* ICON(cursor/modifier/)*/ "delete_node");
+    private final Cursor cursorImproveAddLock = ImageProvider.getCursor(CROSSHAIR, /* ICON(cursor/modifier/)*/ "add_node_lock");
+    private final Cursor cursorImproveLock = ImageProvider.getCursor(CROSSHAIR, /* ICON(cursor/modifier/)*/ "lock");
 
     private Color guideColor;
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 13276)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 13277)
@@ -72,5 +72,5 @@
 public class SelectAction extends MapMode implements ModifierExListener, KeyPressReleaseListener, SelectionEnded {
 
-    private static final String NORMAL = "normal";
+    private static final String NORMAL = /* ICON(cursor/)*/ "normal";
 
     /**
@@ -92,19 +92,19 @@
     enum SelectActionCursor {
 
-        rect(NORMAL, "selection"),
-        rect_add(NORMAL, "select_add"),
-        rect_rm(NORMAL, "select_remove"),
-        way(NORMAL, "select_way"),
-        way_add(NORMAL, "select_way_add"),
-        way_rm(NORMAL, "select_way_remove"),
-        node(NORMAL, "select_node"),
-        node_add(NORMAL, "select_node_add"),
-        node_rm(NORMAL, "select_node_remove"),
-        virtual_node(NORMAL, "addnode"),
-        scale("scale", null),
-        rotate("rotate", null),
-        merge("crosshair", null),
-        lasso(NORMAL, "rope"),
-        merge_to_node("crosshair", "joinnode"),
+        rect(NORMAL, /* ICON(cursor/modifier/)*/ "selection"), 
+        rect_add(NORMAL, /* ICON(cursor/modifier/)*/ "select_add"),
+        rect_rm(NORMAL, /* ICON(cursor/modifier/)*/ "select_remove"),
+        way(NORMAL, /* ICON(cursor/modifier/)*/ "select_way"),
+        way_add(NORMAL, /* ICON(cursor/modifier/)*/ "select_way_add"),
+        way_rm(NORMAL, /* ICON(cursor/modifier/)*/ "select_way_remove"),
+        node(NORMAL, /* ICON(cursor/modifier/)*/ "select_node"),
+        node_add(NORMAL, /* ICON(cursor/modifier/)*/ "select_node_add"),
+        node_rm(NORMAL, /* ICON(cursor/modifier/)*/ "select_node_remove"),
+        virtual_node(NORMAL, /* ICON(cursor/modifier/)*/ "addnode"),
+        scale(/* ICON(cursor/)*/ "scale", null), 
+        rotate(/* ICON(cursor/)*/ "rotate", null),
+        merge(/* ICON(cursor/)*/ "crosshair", null),
+        lasso(NORMAL, /* ICON(cursor/modifier/)*/ "rope"), 
+        merge_to_node(/* ICON(cursor/)*/ "crosshair", /* ICON(cursor/modifier/)*/"joinnode"),
         move(Cursor.MOVE_CURSOR);
 
Index: /trunk/src/org/openstreetmap/josm/gui/ScrollViewport.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/ScrollViewport.java	(revision 13276)
+++ /trunk/src/org/openstreetmap/josm/gui/ScrollViewport.java	(revision 13277)
@@ -128,20 +128,20 @@
         // UP
         if ((direction & UP_DIRECTION) != 0) {
-            addScrollButton(UP_DIRECTION, "svpUp", BorderLayout.NORTH);
+            addScrollButton(UP_DIRECTION, /* ICON */ "svpUp", BorderLayout.NORTH);
         }
 
         // DOWN
         if ((direction & DOWN_DIRECTION) != 0) {
-            addScrollButton(DOWN_DIRECTION, "svpDown", BorderLayout.SOUTH);
+            addScrollButton(DOWN_DIRECTION, /* ICON */ "svpDown", BorderLayout.SOUTH);
         }
 
         // LEFT
         if ((direction & LEFT_DIRECTION) != 0) {
-            addScrollButton(LEFT_DIRECTION, "svpLeft", BorderLayout.WEST);
+            addScrollButton(LEFT_DIRECTION, /* ICON */ "svpLeft", BorderLayout.WEST);
         }
 
         // RIGHT
         if ((direction & RIGHT_DIRECTION) != 0) {
-            addScrollButton(RIGHT_DIRECTION, "svpRight", BorderLayout.EAST);
+            addScrollButton(RIGHT_DIRECTION, /* ICON */ "svpRight", BorderLayout.EAST);
         }
 
