Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/AbstractListMerger.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/AbstractListMerger.java	(revision 16266)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/AbstractListMerger.java	(revision 16267)
@@ -41,5 +41,4 @@
 import org.openstreetmap.josm.gui.widgets.OsmPrimitivesTable;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.ImageResource;
 
 /**
@@ -421,11 +420,6 @@
     abstract static class CopyAction extends AbstractAction implements ListSelectionListener {
 
-        protected CopyAction(String iconName, String actionName, String shortDescription) {
-            ImageResource icon = new ImageProvider("dialogs/conflict", iconName).getResource();
-            if (icon == null) {
-                putValue(Action.NAME, actionName);
-            } else {
-                icon.attachImageIcon(this, true);
-            }
+        protected CopyAction(String iconName, String shortDescription) {
+            new ImageProvider("dialogs/conflict", iconName).getResource().attachImageIcon(this, true);
             putValue(Action.SHORT_DESCRIPTION, shortDescription);
             setEnabled(false);
@@ -440,5 +434,5 @@
 
         CopyStartLeftAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copystartleft", tr("> top"),
+            super(/* ICON(dialogs/conflict/)*/ "copystartleft",
                 tr("Copy my selected nodes to the start of the merged node list"));
         }
@@ -462,5 +456,5 @@
 
         CopyEndLeftAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copyendleft", tr("> bottom"),
+            super(/* ICON(dialogs/conflict/)*/ "copyendleft",
                 tr("Copy my selected elements to the end of the list of merged elements."));
         }
@@ -484,5 +478,5 @@
 
         CopyBeforeCurrentLeftAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copybeforecurrentleft", tr("> before"),
+            super(/* ICON(dialogs/conflict/)*/ "copybeforecurrentleft",
                     tr("Copy my selected elements before the first selected element in the list of merged elements."));
         }
@@ -514,5 +508,5 @@
 
         CopyAfterCurrentLeftAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copyaftercurrentleft", tr("> after"),
+            super(/* ICON(dialogs/conflict/)*/ "copyaftercurrentleft",
                     tr("Copy my selected elements after the first selected element in the list of merged elements."));
         }
@@ -540,5 +534,5 @@
 
         CopyStartRightAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copystartright", tr("< top"),
+            super(/* ICON(dialogs/conflict/)*/ "copystartright",
                 tr("Copy their selected element to the start of the list of merged elements."));
         }
@@ -558,5 +552,5 @@
 
         CopyEndRightAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copyendright", tr("< bottom"),
+            super(/* ICON(dialogs/conflict/)*/ "copyendright",
                 tr("Copy their selected elements to the end of the list of merged elements."));
         }
@@ -576,5 +570,5 @@
 
         CopyBeforeCurrentRightAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copybeforecurrentright", tr("< before"),
+            super(/* ICON(dialogs/conflict/)*/ "copybeforecurrentright",
                     tr("Copy their selected elements before the first selected element in the list of merged elements."));
         }
@@ -602,5 +596,5 @@
 
         CopyAfterCurrentRightAction() {
-            super(/* ICON(dialogs/conflict/)*/ "copyaftercurrentright", tr("< after"),
+            super(/* ICON(dialogs/conflict/)*/ "copyaftercurrentright",
                     tr("Copy their selected element after the first selected element in the list of merged elements"));
         }
@@ -684,10 +678,5 @@
 
         MoveUpMergedAction() {
-            ImageResource icon = new ImageProvider("dialogs/conflict", "moveup").getResource();
-            if (icon == null) {
-                putValue(Action.NAME, tr("Up"));
-            } else {
-                icon.attachImageIcon(this, true);
-            }
+            new ImageProvider("dialogs/conflict", "moveup").getResource().attachImageIcon(this, true);
             putValue(Action.SHORT_DESCRIPTION, tr("Move up the selected entries by one position."));
             setEnabled(false);
@@ -717,10 +706,5 @@
 
         MoveDownMergedAction() {
-            ImageResource icon = new ImageProvider("dialogs/conflict", "movedown").getResource();
-            if (icon == null) {
-                putValue(Action.NAME, tr("Down"));
-            } else {
-                icon.attachImageIcon(this, true);
-            }
+            new ImageProvider("dialogs/conflict", "movedown").getResource().attachImageIcon(this, true);
             putValue(Action.SHORT_DESCRIPTION, tr("Move down the selected entries by one position."));
             setEnabled(false);
@@ -750,10 +734,5 @@
 
         RemoveMergedAction() {
-            ImageResource icon = new ImageProvider("dialogs/conflict", "remove").getResource();
-            if (icon == null) {
-                putValue(Action.NAME, tr("Remove"));
-            } else {
-                icon.attachImageIcon(this, true);
-            }
+            new ImageProvider("dialogs/conflict", "remove").getResource().attachImageIcon(this, true);
             putValue(Action.SHORT_DESCRIPTION, tr("Remove the selected entries from the list of merged elements."));
             setEnabled(false);
Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMerger.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMerger.java	(revision 16266)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMerger.java	(revision 16267)
@@ -32,5 +32,4 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.ImageResource;
 
 /**
@@ -180,11 +179,5 @@
     class KeepMineAction extends AbstractAction implements ListSelectionListener {
         KeepMineAction() {
-            ImageResource icon = new ImageProvider("dialogs/conflict", "tagkeepmine").getResource();
-            if (icon != null) {
-                icon.attachImageIcon(this, true);
-                putValue(Action.NAME, "");
-            } else {
-                putValue(Action.NAME, ">");
-            }
+            new ImageProvider("dialogs/conflict", "tagkeepmine").getResource().attachImageIcon(this, true);
             putValue(Action.SHORT_DESCRIPTION, tr("Keep the selected key/value pairs from the local dataset"));
             setEnabled(false);
@@ -212,11 +205,5 @@
     class KeepTheirAction extends AbstractAction implements ListSelectionListener {
         KeepTheirAction() {
-            ImageResource icon = new ImageProvider("dialogs/conflict", "tagkeeptheir").getResource();
-            if (icon != null) {
-                icon.attachImageIcon(this, true);
-                putValue(Action.NAME, "");
-            } else {
-                putValue(Action.NAME, ">");
-            }
+            new ImageProvider("dialogs/conflict", "tagkeeptheir").getResource().attachImageIcon(this, true);
             putValue(Action.SHORT_DESCRIPTION, tr("Keep the selected key/value pairs from the server dataset"));
             setEnabled(false);
@@ -241,5 +228,5 @@
      * Synchronizes scrollbar adjustments between a set of
      * {@link Adjustable}s. Whenever the adjustment of one of
-     * the registerd Adjustables is updated the adjustment of
+     * the registered Adjustables is updated the adjustment of
      * the other registered Adjustables is adjusted too.
      *
@@ -310,11 +297,5 @@
 
         UndecideAction() {
-            ImageResource icon = new ImageProvider("dialogs/conflict", "tagundecide").getResource();
-            if (icon != null) {
-                icon.attachImageIcon(this, true);
-                putValue(Action.NAME, "");
-            } else {
-                putValue(Action.NAME, tr("Undecide"));
-            }
+            new ImageProvider("dialogs/conflict", "tagundecide").getResource().attachImageIcon(this, true);
             putValue(SHORT_DESCRIPTION, tr("Mark the selected tags as undecided"));
             setEnabled(false);
Index: trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 16266)
+++ trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 16267)
@@ -55,5 +55,4 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.ImageResource;
 import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Logging;
@@ -364,8 +363,5 @@
             putValue(NAME, tr("Cancel"));
             putValue(SHORT_DESCRIPTION, tr("Close this dialog and resume editing in JOSM"));
-            ImageResource resource = new ImageProvider("cancel").setOptional(true).getResource();
-            if (resource != null) {
-                resource.attachImageIcon(this, true);
-            }
+            new ImageProvider("cancel").getResource().attachImageIcon(this, true);
             InputMapUtils.addEscapeAction(getRootPane(), this);
         }
@@ -401,23 +397,16 @@
                     putValue(NAME, tr("Exit now!"));
                     putValue(SHORT_DESCRIPTION, tr("Exit JOSM without saving. Unsaved changes are lost."));
-                    attachImageIcon(new ImageProvider("exit"));
+                    new ImageProvider("exit").getResource().attachImageIcon(this, true);
                     break;
                 case RESTART:
                     putValue(NAME, tr("Restart now!"));
                     putValue(SHORT_DESCRIPTION, tr("Restart JOSM without saving. Unsaved changes are lost."));
-                    attachImageIcon(new ImageProvider("restart"));
+                    new ImageProvider("restart").getResource().attachImageIcon(this, true);
                     break;
                 case DELETE:
                     putValue(NAME, tr("Delete now!"));
                     putValue(SHORT_DESCRIPTION, tr("Delete layers without saving. Unsaved changes are lost."));
-                    attachImageIcon(new ImageProvider("dialogs", "delete"));
-                    break;
-            }
-        }
-
-        private void attachImageIcon(ImageProvider provider) {
-            ImageResource resource = provider.setOptional(true).getResource();
-            if (resource != null) {
-                resource.attachImageIcon(this, true);
+                    new ImageProvider("dialogs", "delete").getResource().attachImageIcon(this, true);
+                    break;
             }
         }
