Index: trunk/src/org/openstreetmap/josm/actions/PurgeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/PurgeAction.java	(revision 8982)
+++ trunk/src/org/openstreetmap/josm/actions/PurgeAction.java	(revision 8984)
@@ -6,4 +6,5 @@
 import java.awt.Component;
 import java.awt.Dimension;
+import java.awt.GraphicsEnvironment;
 import java.awt.GridBagLayout;
 import java.awt.Insets;
@@ -202,17 +203,23 @@
         }
 
-        ExtendedDialog confirmDlg = new ExtendedDialog(Main.parent, tr("Confirm Purging"), new String[] {tr("Purge"), tr("Cancel")});
-        confirmDlg.setContent(buildPanel(modified), false);
-        confirmDlg.setButtonIcons(new String[] {"ok", "cancel"});
-
-        int answer = confirmDlg.showDialog().getValue();
-        if (answer != 1)
-            return;
-
-        Main.pref.put("purge.clear_undo_redo", cbClearUndoRedo.isSelected());
+        boolean clearUndoRedo = false;
+
+        if (!GraphicsEnvironment.isHeadless()) {
+            ExtendedDialog confirmDlg = new ExtendedDialog(Main.parent, tr("Confirm Purging"),
+                    new String[] {tr("Purge"), tr("Cancel")});
+            confirmDlg.setContent(buildPanel(modified), false);
+            confirmDlg.setButtonIcons(new String[] {"ok", "cancel"});
+
+            int answer = confirmDlg.showDialog().getValue();
+            if (answer != 1)
+                return;
+
+            clearUndoRedo = cbClearUndoRedo.isSelected();
+            Main.pref.put("purge.clear_undo_redo", clearUndoRedo);
+        }
 
         Main.main.undoRedo.add(new PurgeCommand(Main.main.getEditLayer(), toPurgeChecked, makeIncomplete));
 
-        if (cbClearUndoRedo.isSelected()) {
+        if (clearUndoRedo) {
             Main.main.undoRedo.clean();
             getCurrentDataSet().clearSelectionHistory();
