diff --git a/locale/POTFILES.in b/locale/POTFILES.in
index dd2787b01..c0f037c5a 100644
--- a/locale/POTFILES.in
+++ b/locale/POTFILES.in
@@ -123,6 +123,7 @@ src/MemoryX.h
 src/Menus.cpp
 src/Menus.h
 src/MenusMac.cpp
+src/MenusMac.mm
 src/Mix.cpp
 src/Mix.h
 src/MixerBoard.cpp
diff --git a/src/Makefile.am b/src/Makefile.am
index e61be0e4e..14fa52ff3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -177,6 +177,7 @@ audacity_SOURCES = \
 	MemoryX.h \
 	Menus.cpp \
 	Menus.h \
+	MenusMac.mm \
 	Mix.cpp \
 	Mix.h \
 	MixerBoard.cpp \
diff --git a/src/Makefile.in b/src/Makefile.in
index d28e7abc1..d6914ed13 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -300,7 +300,7 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
 	LabelDialog.h LabelTrack.cpp LabelTrack.h LangChoice.cpp \
 	LangChoice.h Languages.cpp Languages.h Legacy.cpp Legacy.h \
 	Lyrics.cpp Lyrics.h LyricsWindow.cpp LyricsWindow.h \
-	MacroMagic.h Matrix.cpp Matrix.h MemoryX.h Menus.cpp Menus.h \
+	MacroMagic.h Matrix.cpp Matrix.h MemoryX.h Menus.cpp MenusMac.mm Menus.h \
 	Mix.cpp Mix.h MixerBoard.cpp MixerBoard.h ModuleManager.cpp \
 	ModuleManager.h NumberScale.h PitchName.cpp PitchName.h \
 	PlatformCompatibility.cpp PlatformCompatibility.h \
@@ -627,7 +627,7 @@ am_audacity_OBJECTS = $(am__objects_1) audacity-AboutDialog.$(OBJEXT) \
 	audacity-LangChoice.$(OBJEXT) audacity-Languages.$(OBJEXT) \
 	audacity-Legacy.$(OBJEXT) audacity-Lyrics.$(OBJEXT) \
 	audacity-LyricsWindow.$(OBJEXT) audacity-Matrix.$(OBJEXT) \
-	audacity-Menus.$(OBJEXT) audacity-Mix.$(OBJEXT) \
+	audacity-Menus.$(OBJEXT) audacity-MenusMac.$(OBJEXT) audacity-Mix.$(OBJEXT) \
 	audacity-MixerBoard.$(OBJEXT) audacity-ModuleManager.$(OBJEXT) \
 	audacity-PitchName.$(OBJEXT) \
 	audacity-PlatformCompatibility.$(OBJEXT) \
@@ -1322,7 +1322,7 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
 	LabelDialog.h LabelTrack.cpp LabelTrack.h LangChoice.cpp \
 	LangChoice.h Languages.cpp Languages.h Legacy.cpp Legacy.h \
 	Lyrics.cpp Lyrics.h LyricsWindow.cpp LyricsWindow.h \
-	MacroMagic.h Matrix.cpp Matrix.h MemoryX.h Menus.cpp Menus.h \
+	MacroMagic.h Matrix.cpp Matrix.h MemoryX.h Menus.cpp Menus.h MenusMac.mm \
 	Mix.cpp Mix.h MixerBoard.cpp MixerBoard.h ModuleManager.cpp \
 	ModuleManager.h NumberScale.h PitchName.cpp PitchName.h \
 	PlatformCompatibility.cpp PlatformCompatibility.h \
@@ -2438,6 +2438,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-LyricsWindow.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Matrix.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Menus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-MenusMac.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Mix.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-MixerBoard.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-ModuleManager.Po@am__quote@
@@ -3624,6 +3625,20 @@ audacity-Menus.obj: Menus.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-Menus.obj `if test -f 'Menus.cpp'; then $(CYGPATH_W) 'Menus.cpp'; else $(CYGPATH_W) '$(srcdir)/Menus.cpp'; fi`
 
+audacity-MenusMac.o: MenusMac.mm
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-MenusMac.o -MD -MP -MF $(DEPDIR)/audacity-MenusMac.Tpo -c -o audacity-MenusMac.o `test -f 'MenusMac.mm' || echo '$(srcdir)/'`MenusMac.mm
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/audacity-MenusMac.Tpo $(DEPDIR)/audacity-MenusMac.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='MenusMac.mm' object='audacity-MenusMac.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-MenusMac.o `test -f 'MenusMac.mm' || echo '$(srcdir)/'`MenusMac.mm
+
+audacity-MenusMac.obj: MenusMac.mm
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-MenusMac.obj -MD -MP -MF $(DEPDIR)/audacity-MenusMac.Tpo -c -o audacity-MenusMac.obj `if test -f 'MenusMac.mm'; then $(CYGPATH_W) 'MenusMac.mm'; else $(CYGPATH_W) '$(srcdir)/MenusMac.mm'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/audacity-MenusMac.Tpo $(DEPDIR)/audacity-MenusMac.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='MenusMac.mm' object='audacity-MenusMac.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-MenusMac.obj `if test -f 'MenusMac.mm'; then $(CYGPATH_W) 'MenusMac.mm'; else $(CYGPATH_W) '$(srcdir)/MenusMac.mm'; fi`
+
 audacity-Mix.o: Mix.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-Mix.o -MD -MP -MF $(DEPDIR)/audacity-Mix.Tpo -c -o audacity-Mix.o `test -f 'Mix.cpp' || echo '$(srcdir)/'`Mix.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/audacity-Mix.Tpo $(DEPDIR)/audacity-Mix.Po