Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java	(revision 9778)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java	(revision 9779)
@@ -4,4 +4,5 @@
 import java.awt.BorderLayout;
 import java.awt.Cursor;
+import java.awt.GraphicsEnvironment;
 import java.awt.Image;
 import java.awt.event.ActionEvent;
@@ -68,8 +69,10 @@
         scale.setSelected(true);
         JOptionPane pane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE);
-        JDialog dlg = pane.createDialog(Main.parent, imageUrl.toString());
-        dlg.setModal(false);
-        dlg.toFront();
-        dlg.setVisible(true);
+        if (!GraphicsEnvironment.isHeadless()) {
+            JDialog dlg = pane.createDialog(Main.parent, imageUrl.toString());
+            dlg.setModal(false);
+            dlg.toFront();
+            dlg.setVisible(true);
+        }
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java	(revision 9778)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/PlayHeadMarker.java	(revision 9779)
@@ -54,4 +54,5 @@
                 playHead = new PlayHeadMarker();
             } catch (Exception ex) {
+                Main.error(ex);
                 return null;
             }
@@ -67,20 +68,22 @@
         if (!enabled) return;
         dropTolerance = Main.pref.getInteger("marker.playHeadDropTolerance", 50);
-        Main.map.mapView.addMouseListener(new MouseAdapter() {
-            @Override public void mousePressed(MouseEvent ev) {
-                Point p = ev.getPoint();
-                if (ev.getButton() != MouseEvent.BUTTON1 || p == null)
-                    return;
-                if (playHead.containsPoint(p)) {
-                    /* when we get a click on the marker, we need to switch mode to avoid
-                     * getting confused with other drag operations (like select) */
-                    oldMode = Main.map.mapMode;
-                    oldCoor = getCoor();
-                    PlayHeadDragMode playHeadDragMode = new PlayHeadDragMode(playHead);
-                    Main.map.selectMapMode(playHeadDragMode);
-                    playHeadDragMode.mousePressed(ev);
-                }
-            }
-        });
+        if (Main.isDisplayingMapView()) {
+            Main.map.mapView.addMouseListener(new MouseAdapter() {
+                @Override public void mousePressed(MouseEvent ev) {
+                    Point p = ev.getPoint();
+                    if (ev.getButton() != MouseEvent.BUTTON1 || p == null)
+                        return;
+                    if (playHead.containsPoint(p)) {
+                        /* when we get a click on the marker, we need to switch mode to avoid
+                         * getting confused with other drag operations (like select) */
+                        oldMode = Main.map.mapMode;
+                        oldCoor = getCoor();
+                        PlayHeadDragMode playHeadDragMode = new PlayHeadDragMode(playHead);
+                        Main.map.selectMapMode(playHeadDragMode);
+                        playHeadDragMode.mousePressed(ev);
+                    }
+                }
+            });
+        }
     }
 
Index: trunk/src/org/openstreetmap/josm/tools/AudioPlayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/AudioPlayer.java	(revision 9778)
+++ trunk/src/org/openstreetmap/josm/tools/AudioPlayer.java	(revision 9779)
@@ -4,4 +4,5 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.GraphicsEnvironment;
 import java.io.IOException;
 import java.net.URL;
@@ -377,7 +378,10 @@
         else
             msg = tr(msg);
-        JOptionPane.showMessageDialog(Main.parent,
-                "<html><p>" + msg + "</p></html>",
-                tr("Error playing sound"), JOptionPane.ERROR_MESSAGE);
+        Main.error(msg);
+        if (!GraphicsEnvironment.isHeadless()) {
+            JOptionPane.showMessageDialog(Main.parent,
+                    "<html><p>" + msg + "</p></html>",
+                    tr("Error playing sound"), JOptionPane.ERROR_MESSAGE);
+        }
     }
 }
