Index: src/org/openstreetmap/josm/io/GpxExporter.java
===================================================================
--- src/org/openstreetmap/josm/io/GpxExporter.java	(revision 2031)
+++ src/org/openstreetmap/josm/io/GpxExporter.java	(working copy)
@@ -111,9 +111,14 @@
         JTextField keywords = new JTextField();
         p.add(keywords, GBC.eop().fill(GBC.HORIZONTAL));
 
-        int answer = new ExtendedDialog(Main.parent, tr("Export options"), p, new String[] { tr("Export and Save"),
-            tr("Cancel") }, new String[] { "exportgpx.png", "cancel.png" }).getValue();
-        if (answer != 1)
+        ExtendedDialog ed = new ExtendedDialog(Main.parent,
+                tr("Export options"),
+                new String[] { tr("Export and Save"), tr("Cancel") });
+        ed.setButtonIcons(new String[] { "exportgpx.png", "cancel.png" });
+        ed.setContent(p);
+        ed.showDialog();
+
+        if (ed.getValue() != 1)
             return;
 
         Main.pref.put("lastAddAuthor", author.isSelected());
Index: src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 2031)
+++ src/org/openstreetmap/josm/actions/CombineWayAction.java	(working copy)
@@ -117,13 +117,16 @@
         // Complain to the user if the ways don't have equal memberships.
         for (HashSet<Way> waylinks : backlinks.values()) {
             if (!waylinks.containsAll(selectedWays)) {
-                int option = new ExtendedDialog(Main.parent,
+
+                ExtendedDialog ed = new ExtendedDialog(Main.parent,
                         tr("Combine ways with different memberships?"),
-                        tr("The selected ways have differing relation memberships.  "
-                                + "Do you still want to combine them?"),
-                                new String[] {tr("Combine Anyway"), tr("Cancel")},
-                                new String[] {"combineway.png", "cancel.png"}).getValue();
-                if (option == 1) {
+                        new String[] {tr("Combine Anyway"), tr("Cancel")});
+                ed.setButtonIcons(new String[] {"combineway.png", "cancel.png"});
+                ed.setContent(tr("The selected ways have differing relation memberships.  "
+                        + "Do you still want to combine them?"));
+                ed.showDialog();
+
+                if (ed.getValue() == 1) {
                     break;
                 }
 
@@ -149,13 +152,15 @@
         } else {
             Object secondTry = actuallyCombineWays(selectedWays, true);
             if (secondTry instanceof List<?>) {
-                int option = new ExtendedDialog(Main.parent,
+                ExtendedDialog ed = new ExtendedDialog(Main.parent,
                         tr("Change directions?"),
-                        tr("The ways can not be combined in their current directions.  "
-                                + "Do you want to reverse some of them?"),
-                                new String[] {tr("Reverse and Combine"), tr("Cancel")},
-                                new String[] {"wayflip.png", "cancel.png"}).getValue();
-                if (option != 1) return;
+                        new String[] {tr("Reverse and Combine"), tr("Cancel")});
+                ed.setButtonIcons(new String[] {"wayflip.png", "cancel.png"});
+                ed.setContent(tr("The ways can not be combined in their current directions.  "
+                        + "Do you want to reverse some of them?"));
+                ed.showDialog();
+                if (ed.getValue() != 1) return;
+
                 nodeList = (List<Node>) secondTry;
             } else {
                 JOptionPane.showMessageDialog(
@@ -204,12 +209,15 @@
         }
 
         if (!components.isEmpty()) {
-            int answer = new ExtendedDialog(Main.parent,
+
+            ExtendedDialog ed = new ExtendedDialog(Main.parent,
                     tr("Enter values for all conflicts."),
-                    p,
-                    new String[] {tr("Solve Conflicts"), tr("Cancel")},
-                    new String[] {"dialogs/conflict.png", "cancel.png"}).getValue();
-            if (answer != 1) return;
+                    new String[] {tr("Solve Conflicts"), tr("Cancel")});
+            ed.setButtonIcons(new String[] {"dialogs/conflict.png", "cancel.png"});
+            ed.setContent(p);
+            ed.showDialog();
+
+            if (ed.getValue() != 1) return;
 
             for (Entry<String, JComboBox> e : components.entrySet()) {
                 newWay.put(e.getKey(), e.getValue().getEditor().getItem().toString());
Index: src/org/openstreetmap/josm/actions/AbstractMergeAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/AbstractMergeAction.java	(revision 2031)
+++ src/org/openstreetmap/josm/actions/AbstractMergeAction.java	(working copy)
@@ -65,16 +65,21 @@
         layerList.setRenderer(new LayerListCellRenderer());
         layerList.setModel(new DefaultComboBoxModel(targetLayers.toArray()));
         layerList.setSelectedIndex(0);
-    
+
         JPanel pnl = new JPanel();
         pnl.setLayout(new GridBagLayout());
         pnl.add(new JLabel(tr("Please select the target layer.")), GBC.eol());
         pnl.add(layerList, GBC.eol());
-    
-        int decision = new ExtendedDialog(Main.parent, tr("Select target layer"), pnl, new String[] { tr("Merge"),
-            tr("Cancel") }, new String[] { "dialogs/mergedown", "cancel" }).getValue();
-        if (decision != 1)
+
+        ExtendedDialog ed = new ExtendedDialog(Main.parent,
+                tr("Select target layer"),
+                new String[] { tr("Merge"), tr("Cancel") });
+        ed.setButtonIcons(new String[] { "dialogs/mergedown", "cancel" });
+        ed.setContent(pnl);
+        ed.showDialog();
+        if (ed.getValue() != 1)
             return null;
+
         Layer targetLayer = (Layer) layerList.getSelectedItem();
         return targetLayer;
     }
Index: src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java
===================================================================
--- src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java	(revision 2031)
+++ src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java	(working copy)
@@ -26,7 +26,7 @@
  * JOSM windows for detached dialogs, relation editors, history browser and the like.
  * 
  */
-public class ConditionalOptionPaneUtil {
+@Deprecated public class ConditionalOptionPaneUtil {
     static public final int DIALOG_DISABLED_OPTION = Integer.MIN_VALUE;
 
     /**
Index: src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(revision 2031)
+++ src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(working copy)
@@ -635,7 +635,6 @@
             public void mouseReleased(MouseEvent arg0) {}
         }
 
-        LinkedList<TaggingPreset> p = new LinkedList<TaggingPreset>();
         presets.removeAll();
         int total = nodes+ways+relations+closedways;
         if(total == 0) {
@@ -830,13 +829,15 @@
 
         protected void deleteFromRelation(int row) {
             Relation cur = (Relation)membershipData.getValueAt(row, 0);
-            int result = new ExtendedDialog(Main.parent,
+
+            ExtendedDialog ed = new ExtendedDialog(Main.parent,
                     tr("Change relation"),
-                    tr("Really delete selection from relation {0}?", cur.getDisplayName(DefaultNameFormatter.getInstance())),
-                    new String[] {tr("Delete from relation"), tr("Cancel")},
-                    new String[] {"dialogs/delete.png", "cancel.png"}).getValue();
+                    new String[] {tr("Delete from relation"), tr("Cancel")});
+            ed.setButtonIcons(new String[] {"dialogs/delete.png", "cancel.png"});
+            ed.setContent(tr("Really delete selection from relation {0}?", cur.getDisplayName(DefaultNameFormatter.getInstance())));
+            ed.showDialog();
 
-            if(result != 1)
+            if(ed.getValue() != 1)
                 return;
 
             Relation rel = new Relation(cur);
Index: src/org/openstreetmap/josm/plugins/PluginSelection.java
===================================================================
--- src/org/openstreetmap/josm/plugins/PluginSelection.java	(revision 2031)
+++ src/org/openstreetmap/josm/plugins/PluginSelection.java	(working copy)
@@ -96,12 +96,14 @@
             );
             done = true;
         } else {
-            int answer = new ExtendedDialog(Main.parent,
+            ExtendedDialog ed = new ExtendedDialog(Main.parent,
                     tr("Update"),
-                    tr("Update the following plugins:\n\n{0}", toUpdateStr.toString()),
-                    new String[] {tr("Update Plugins"), tr("Cancel")},
-                    new String[] {"dialogs/refresh.png", "cancel.png"}).getValue();
-            if (answer == 1) {
+                    new String[] {tr("Update Plugins"), tr("Cancel")});
+            ed.setButtonIcons(new String[] {"dialogs/refresh.png", "cancel.png"});
+            ed.setContent(tr("Update the following plugins:\n\n{0}", toUpdateStr.toString()));
+            ed.showDialog();
+
+            if (ed.getValue() == 1) {
                 PluginDownloader.update(toUpdate);
                 done = true;
             }
@@ -132,13 +134,15 @@
             }
         }
         if (!toDownload.isEmpty()) {
-            int answer = new ExtendedDialog(Main.parent,
+            ExtendedDialog ed = new ExtendedDialog(Main.parent,
                     tr("Download missing plugins"),
-                    tr("Download the following plugins?\n\n{0}", msg),
-                    new String[] {tr("Download Plugins"), tr("Cancel")},
-                    new String[] {"download.png", "cancel.png"}).getValue();
+                    new String[] {tr("Download Plugins"), tr("Cancel")});
+            ed.setButtonIcons(new String[] {"download.png", "cancel.png"});
+            ed.setContent(tr("Download the following plugins?\n\n{0}", msg));
+            ed.showDialog();
+
             Collection<PluginInformation> error =
-                (answer != 1 ? toDownload : new PluginDownloader().download(toDownload));
+                (ed.getValue() != 1 ? toDownload : new PluginDownloader().download(toDownload));
             for (PluginInformation pd : error) {
                 pluginMap.put(pd.name, false);
             }
@@ -329,7 +333,8 @@
                                     String x[] = line.split(";");
                                     name = x[0];
                                     url = x[1];
-                                    manifest = null;
+                                    // Is null anyway
+                                    //manifest = null;
                                 }
                             }
                             if(name != null)
