Index: /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 11180)
+++ /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 11181)
@@ -75,5 +75,5 @@
             }
         } catch (IllegalArgumentException ex) {
-            if (ex.getMessage() == null || ex.getMessage().isEmpty()) {
+            if (ex.getMessage() == null || ex.getMessage().isEmpty() || GraphicsEnvironment.isHeadless()) {
                 throw ex;
             } else {
Index: /trunk/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java	(revision 11180)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java	(revision 11181)
@@ -71,5 +71,9 @@
     public void testActionPerformedDisabled() {
         assertTrue(Main.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
-        new AddImageryLayerAction(new ImageryInfo()).actionPerformed(null);
+        try {
+            new AddImageryLayerAction(new ImageryInfo()).actionPerformed(null);
+        } catch (IllegalArgumentException expected) {
+            assertEquals("Parameter 'info.url' must not be null", expected.getMessage());
+        }
         assertTrue(Main.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
     }
