Index: /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/ConfigKeys.java
===================================================================
--- /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/ConfigKeys.java	(revision 13134)
+++ /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/ConfigKeys.java	(revision 13135)
@@ -1,17 +1,17 @@
 /* Copyright (c) 2008, Henrik Niehaus
  * All rights reserved.
- *
+ * 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- *
+ * 
  * 1. Redistributions of source code must retain the above copyright notice,
  *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
+ * 2. Redistributions in binary form must reproduce the above copyright notice, 
+ *    this list of conditions and the following disclaimer in the documentation 
  *    and/or other materials provided with the distribution.
- * 3. Neither the name of the project nor the names of its
- *    contributors may be used to endorse or promote products derived from this
+ * 3. Neither the name of the project nor the names of its 
+ *    contributors may be used to endorse or promote products derived from this 
  *    software without specific prior written permission.
- *
+ * 
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -36,3 +36,4 @@
     public static final String OSB_NICKNAME = "osb.nickname";
     public static final String OSB_AUTO_DOWNLOAD = "osb.auto_download";
+    public static final String OSB_BUTTON_LABELS = "osb.button_labels";
 }
Index: /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/OsbPlugin.java
===================================================================
--- /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/OsbPlugin.java	(revision 13134)
+++ /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/OsbPlugin.java	(revision 13135)
@@ -28,6 +28,4 @@
 package org.openstreetmap.josm.plugins.osb;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
-
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
Index: /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java
===================================================================
--- /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java	(revision 13134)
+++ /applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java	(revision 13135)
@@ -1,17 +1,17 @@
 /* Copyright (c) 2008, Henrik Niehaus
  * All rights reserved.
- *
+ * 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- *
+ * 
  * 1. Redistributions of source code must retain the above copyright notice,
  *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
+ * 2. Redistributions in binary form must reproduce the above copyright notice, 
+ *    this list of conditions and the following disclaimer in the documentation 
  *    and/or other materials provided with the distribution.
- * 3. Neither the name of the project nor the names of its
- *    contributors may be used to endorse or promote products derived from this
+ * 3. Neither the name of the project nor the names of its 
+ *    contributors may be used to endorse or promote products derived from this 
  *    software without specific prior written permission.
- *
+ * 
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -66,4 +66,5 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
+import org.openstreetmap.josm.plugins.osb.ConfigKeys;
 import org.openstreetmap.josm.plugins.osb.OsbObserver;
 import org.openstreetmap.josm.plugins.osb.OsbPlugin;
@@ -89,12 +90,11 @@
     private JToggleButton newIssue = new JToggleButton();
 
+    private boolean buttonLabels = Main.pref.getBoolean(ConfigKeys.OSB_BUTTON_LABELS);
+
     public OsbDialog(final OsbPlugin plugin) {
         super(tr("Open OpenStreetBugs"), "icon_error22",
-                tr("Opens the OpenStreetBugs window and activates the automatic download"),
-                Shortcut.registerShortcut(
-                        "view:openstreetbugs",
-                        tr("Toggle: {0}", tr("Open OpenStreetBugs")),
-                        KeyEvent.VK_O, Shortcut.GROUP_MENU, Shortcut.SHIFT_DEFAULT),
-                150);
+                tr("Open the OpenStreetBugs window and activates the automatic download"), Shortcut.registerShortcut(
+                        "view:openstreetbugs", tr("Toggle: {0}", tr("Open OpenStreetBugs")), KeyEvent.VK_O,
+                        Shortcut.GROUP_MENU, Shortcut.SHIFT_DEFAULT), 150);
 
         osbPlugin = plugin;
@@ -109,19 +109,18 @@
 
         // create dialog buttons
-        JPanel buttonPanel = new JPanel(new GridLayout(2, 2));
+        GridLayout layout = buttonLabels ? new GridLayout(2, 2) : new GridLayout(1, 4);
+        JPanel buttonPanel = new JPanel(layout);
         add(buttonPanel, BorderLayout.SOUTH);
         refresh = new JButton(tr("Refresh"));
         refresh.setToolTipText(tr("Refresh"));
         refresh.setIcon(OsbPlugin.loadIcon("view-refresh22.png"));
-        refresh.setHorizontalAlignment(SwingConstants.LEFT);
         refresh.addActionListener(new ActionListener() {
 
             public void actionPerformed(ActionEvent e) {
                 // check zoom level
-                if(Main.map.mapView.zoom() > 15 || Main.map.mapView.zoom() < 9) {
+                if (Main.map.mapView.zoom() > 15 || Main.map.mapView.zoom() < 9) {
                     JOptionPane.showMessageDialog(Main.parent,
                             tr("The visible area is either too small or too big to download data from OpenStreetBugs"),
-                            tr("Warning"),
-                            JOptionPane.INFORMATION_MESSAGE);
+                            tr("Warning"), JOptionPane.INFORMATION_MESSAGE);
                     return;
                 }
@@ -134,14 +133,11 @@
         addComment.setToolTipText((String) addComment.getAction().getValue(Action.NAME));
         addComment.setIcon(OsbPlugin.loadIcon("add_comment22.png"));
-        addComment.setHorizontalAlignment(SwingConstants.LEFT);
         closeIssue.setEnabled(false);
         closeIssue.setToolTipText((String) closeIssue.getAction().getValue(Action.NAME));
         closeIssue.setIcon(OsbPlugin.loadIcon("icon_valid22.png"));
-        closeIssue.setHorizontalAlignment(SwingConstants.LEFT);
         NewIssueAction nia = new NewIssueAction(newIssue, osbPlugin);
         newIssue.setAction(nia);
         newIssue.setToolTipText((String) newIssue.getAction().getValue(Action.NAME));
         newIssue.setIcon(OsbPlugin.loadIcon("icon_error_add22.png"));
-        newIssue.setHorizontalAlignment(SwingConstants.LEFT);
 
         buttonPanel.add(refresh);
@@ -149,4 +145,16 @@
         buttonPanel.add(addComment);
         buttonPanel.add(closeIssue);
+
+        if (buttonLabels) {
+            refresh.setHorizontalAlignment(SwingConstants.LEFT);
+            addComment.setHorizontalAlignment(SwingConstants.LEFT);
+            closeIssue.setHorizontalAlignment(SwingConstants.LEFT);
+            newIssue.setHorizontalAlignment(SwingConstants.LEFT);
+        } else {
+            refresh.setText(null);
+            addComment.setText(null);
+            closeIssue.setText(null);
+            newIssue.setText(null);
+        }
 
         // add a selection listener to the data
@@ -158,5 +166,5 @@
                     for (int i = 0; i < model.getSize(); i++) {
                         OsbListItem item = (OsbListItem) model.get(i);
-                        if(item.getNode() == osmPrimitive) {
+                        if (item.getNode() == osmPrimitive) {
                             list.addSelectionInterval(i, i);
                         }
@@ -187,5 +195,5 @@
 
     public void valueChanged(ListSelectionEvent e) {
-        if(list.getSelectedValues().length == 0) {
+        if (list.getSelectedValues().length == 0) {
             addComment.setEnabled(false);
             closeIssue.setEnabled(false);
@@ -218,7 +226,7 @@
 
     private void scrollToSelected(Node node) {
-        for (int i = 0; i < model.getSize();i++) {
-            Node current = ((OsbListItem)model.get(i)).getNode();
-            if(current.id == node.id) {
+        for (int i = 0; i < model.getSize(); i++) {
+            Node current = ((OsbListItem) model.get(i)).getNode();
+            if (current.id == node.id) {
                 list.scrollRectToVisible(list.getCellBounds(i, i));
                 list.setSelectedIndex(i);
@@ -228,8 +236,9 @@
     }
 
-    public void activeLayerChange(Layer oldLayer, Layer newLayer) {}
+    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
+    }
 
     public void layerAdded(Layer newLayer) {
-        if(newLayer == osbPlugin.getLayer()) {
+        if (newLayer == osbPlugin.getLayer()) {
             update(osbPlugin.getDataSet());
             Main.map.mapView.moveLayer(newLayer, 0);
@@ -238,5 +247,5 @@
 
     public void layerRemoved(Layer oldLayer) {
-        if(oldLayer == osbPlugin.getLayer()) {
+        if (oldLayer == osbPlugin.getLayer()) {
             model.removeAllElements();
         }
@@ -253,6 +262,6 @@
 
     public void mouseClicked(MouseEvent e) {
-        if(e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {
-            OsbListItem item = (OsbListItem)list.getSelectedValue();
+        if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {
+            OsbListItem item = (OsbListItem) list.getSelectedValue();
             zoomToNode(item.getNode());
         }
@@ -268,8 +277,8 @@
 
     private void mayTriggerPopup(MouseEvent e) {
-        if(e.isPopupTrigger()) {
+        if (e.isPopupTrigger()) {
             int selectedRow = list.locationToIndex(e.getPoint());
             list.setSelectedIndex(selectedRow);
-            Node n = ((OsbListItem)list.getSelectedValue()).getNode();
+            Node n = ((OsbListItem) list.getSelectedValue()).getNode();
             OsbAction.setSelectedNode(n);
             PopupFactory.createPopup(n).show(e.getComponent(), e.getX(), e.getY());
@@ -277,10 +286,12 @@
     }
 
-    public void mouseEntered(MouseEvent e) {}
-
-    public void mouseExited(MouseEvent e) {}
+    public void mouseEntered(MouseEvent e) {
+    }
+
+    public void mouseExited(MouseEvent e) {
+    }
 
     public void actionPerformed(OsbAction action) {
-        if(action instanceof AddCommentAction || action instanceof CloseIssueAction) {
+        if (action instanceof AddCommentAction || action instanceof CloseIssueAction) {
             update(osbPlugin.getDataSet());
         }
@@ -292,5 +303,5 @@
             String state1 = o1.get("state");
             String state2 = o2.get("state");
-            if(state1.equals(state2)) {
+            if (state1.equals(state2)) {
                 return o1.get("note").compareTo(o2.get("note"));
             }
