Index: trunk/src/org/openstreetmap/josm/actions/HelpAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 7693)
+++ trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 7694)
@@ -27,5 +27,6 @@
      */
     public HelpAction() {
-        super(tr("Help"), ImageProvider.get("help"));
+        super(tr("Help"));
+        new ImageProvider("help").getResource().getImageIcon(this);
         putValue("toolbar", "help");
         setEnabled(!Main.isOffline(OnlineResource.JOSM_WEBSITE));
Index: trunk/src/org/openstreetmap/josm/gui/IconToggleButton.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/IconToggleButton.java	(revision 7693)
+++ trunk/src/org/openstreetmap/josm/gui/IconToggleButton.java	(revision 7694)
@@ -158,5 +158,8 @@
     @Override
     public Icon getIcon() {
-        return (Icon) getSafeActionValue(Action.SMALL_ICON);
+        Object o = getSafeActionValue(Action.LARGE_ICON_KEY);
+        if (o == null)
+            o = getSafeActionValue(Action.SMALL_ICON);
+        return (Icon) o;
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 7693)
+++ trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 7694)
@@ -604,5 +604,5 @@
         add(fileMenu, saveAs);
         sessionMenu.setToolTipText(tr("Save and load the current session (list of layers, etc.)"));
-        sessionMenu.setIcon(ImageProvider.get("session"));
+        sessionMenu.setIcon(new ImageProvider("session").setSize(ImageProvider.ImageSizes.MENU).get());
         sessionSaveAs = new SessionSaveAsAction();
         sessionLoad = new SessionLoadAction();
Index: trunk/src/org/openstreetmap/josm/gui/io/RecentlyOpenedFilesMenu.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/RecentlyOpenedFilesMenu.java	(revision 7693)
+++ trunk/src/org/openstreetmap/josm/gui/io/RecentlyOpenedFilesMenu.java	(revision 7694)
@@ -30,5 +30,5 @@
         super(tr("Open Recent"));
         setToolTipText(tr("List of recently opened files"));
-        setIcon(ImageProvider.get("openrecent.png"));
+        setIcon(new ImageProvider("openrecent").setSize(ImageProvider.ImageSizes.MENU).get());
         putClientProperty("help", ht("/Action/OpenRecent"));
 
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java	(revision 7693)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java	(revision 7694)
@@ -85,5 +85,5 @@
     public MapPaintMenu() {
         super(tr("Map Paint Styles"));
-        setIcon(ImageProvider.get("dialogs", "mapstyle"));
+        setIcon(new ImageProvider("dialogs", "mapstyle").setSize(ImageProvider.ImageSizes.MENU).get());
         MapPaintStyles.addMapPaintSylesUpdateListener(this);
         putClientProperty("help", ht("/Dialog/MapPaint"));
Index: trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 7693)
+++ trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 7694)
@@ -119,6 +119,8 @@
         /* MAP icon */
         MAP,
-        /* MAP icon maximum size*/
+        /* MAP icon maximum size */
         MAPMAX,
+        /* MENU icon size */
+        MENU,
     }
 
@@ -254,4 +256,5 @@
         case MAP: sizeval = Main.pref.getInteger("iconsize.mapmax", 16); break;
         case LARGEICON: sizeval = Main.pref.getInteger("iconsize.largeicon", 24); break;
+        case MENU: /* MENU is SMALLICON - only provided in case of future changes */ 
         case SMALLICON: sizeval = Main.pref.getInteger("iconsize.smallicon", 16); break;
         default: sizeval = Main.pref.getInteger("iconsize.default", 24); break;
@@ -949,5 +952,10 @@
      * @return an icon that represent the overlay of the two given icons. The second icon is layed
      * on the first relative to the given position.
-     */
+     * FIXME: This function does not fit into the ImageProvider concept as public function!
+     * Overlay should be handled like all the other functions only settings arguments and
+     * overlay must be transparent in the background.
+     * Also scaling is not cared about with current implementation.
+     */
+    @Deprecated
     public static ImageIcon overlay(Icon ground, Icon overlay, OverlayPosition pos) {
         int w = ground.getIconWidth();
