Index: /trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 5660)
+++ /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 5661)
@@ -100,4 +100,6 @@
 import org.openstreetmap.josm.actions.audio.AudioSlowerAction;
 import org.openstreetmap.josm.actions.search.SearchAction;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
+import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener;
 import org.openstreetmap.josm.gui.io.RecentlyOpenedFilesMenu;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -557,6 +559,32 @@
         changesetManagerToggleAction.addButtonModel(mi.getModel());
 
-
         if (!Main.pref.getBoolean("audio.menuinvisible", false)) {
+            showAudioMenu(true);
+        }
+        
+        Main.pref.addPreferenceChangeListener(new PreferenceChangedListener() {
+            @Override
+            public void preferenceChanged(PreferenceChangeEvent e) {
+                if (e.getKey().equals("audio.menuinvisible")) {
+                    showAudioMenu(!Boolean.parseBoolean(e.getNewValue().toString()));
+                }
+            }
+        });
+
+        helpMenu.add(statusreport);
+
+        current = helpMenu.add(help); // FIXME why is help not a JosmAction?
+        current.setAccelerator(Shortcut.registerShortcut("system:help", tr("Help"), KeyEvent.VK_F1,
+                Shortcut.DIRECT).getKeyStroke());
+        add(helpMenu, about);
+
+
+        windowMenu.addMenuListener(menuSeparatorHandler);
+
+        new PresetsMenuEnabler(presetsMenu).refreshEnabled();
+    }
+    
+    protected void showAudioMenu(boolean showMenu) {
+        if (showMenu && audioMenu == null) {
             audioMenu = addMenu(marktr("Audio"), KeyEvent.VK_U, defaultMenuPos, ht("/Menu/Audio"));
             add(audioMenu, audioPlayPause);
@@ -567,17 +595,11 @@
             add(audioMenu, audioSlower);
             add(audioMenu, audioFaster);
-        }
-
-        helpMenu.add(statusreport);
-
-        current = helpMenu.add(help); // FIXME why is help not a JosmAction?
-        current.setAccelerator(Shortcut.registerShortcut("system:help", tr("Help"), KeyEvent.VK_F1,
-                Shortcut.DIRECT).getKeyStroke());
-        add(helpMenu, about);
-
-
-        windowMenu.addMenuListener(menuSeparatorHandler);
-
-        new PresetsMenuEnabler(presetsMenu).refreshEnabled();
+            validate();
+        } else if (!showMenu && audioMenu != null) {
+            remove(audioMenu);
+            audioMenu.removeAll();
+            audioMenu = null;
+            validate();
+        }
     }
 
