Index: trunk/src/org/openstreetmap/josm/io/audio/AudioPlayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/audio/AudioPlayer.java	(revision 12714)
+++ trunk/src/org/openstreetmap/josm/io/audio/AudioPlayer.java	(revision 12715)
@@ -237,8 +237,13 @@
         double calibration = Main.pref.getDouble("audio.calibration", 1.0 /* default, ratio */);
         try {
-            soundPlayer = new JavaFxMediaPlayer();
-        } catch (NoClassDefFoundError | InterruptedException e) {
+            soundPlayer = (SoundPlayer) Class.forName("org.openstreetmap.josm.io.audio.JavaFxMediaPlayer").getConstructor().newInstance();
+        } catch (ReflectiveOperationException | IllegalArgumentException | SecurityException e) {
+            Logging.debug(e);
+            Logging.warn("JOSM compiled without Java FX support. Falling back to Java Sound API");
+        } catch (NoClassDefFoundError | JosmRuntimeException e) {
             Logging.debug(e);
             Logging.warn("Java FX is unavailable. Falling back to Java Sound API");
+        }
+        if (soundPlayer == null) {
             soundPlayer = new JavaSoundPlayer(leadIn, calibration);
         }
Index: trunk/src/org/openstreetmap/josm/io/audio/JavaFxMediaPlayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/audio/JavaFxMediaPlayer.java	(revision 12714)
+++ trunk/src/org/openstreetmap/josm/io/audio/JavaFxMediaPlayer.java	(revision 12715)
@@ -11,4 +11,5 @@
 import org.openstreetmap.josm.io.audio.AudioPlayer.Execute;
 import org.openstreetmap.josm.io.audio.AudioPlayer.State;
+import org.openstreetmap.josm.tools.JosmRuntimeException;
 import org.openstreetmap.josm.tools.ListenerList;
 
@@ -37,6 +38,10 @@
     private MediaPlayer mediaPlayer;
 
-    JavaFxMediaPlayer() throws InterruptedException {
-        initFxPlatform();
+    JavaFxMediaPlayer() throws JosmRuntimeException {
+        try {
+            initFxPlatform();
+        } catch (InterruptedException e) {
+            throw new JosmRuntimeException(e);
+        }
     }
 
