diff --git a/src/tracks/labeltrack/ui/LabelTrackControls.cpp b/src/tracks/labeltrack/ui/LabelTrackControls.cpp
index 689923615..886e3d408 100644
--- a/src/tracks/labeltrack/ui/LabelTrackControls.cpp
+++ b/src/tracks/labeltrack/ui/LabelTrackControls.cpp
@@ -73,7 +73,7 @@ enum
 
 BEGIN_POPUP_MENU(LabelTrackMenuTable)
    BEGIN_POPUP_MENU_SECTION( "Basic" )
-      POPUP_MENU_ITEM(OnSetFontID, XO("&Font..."), OnSetFont)
+      POPUP_MENU_ITEM( "Font", OnSetFontID, XO("&Font..."), OnSetFont)
    END_POPUP_MENU_SECTION()
 END_POPUP_MENU()
 
diff --git a/src/tracks/playabletrack/notetrack/ui/NoteTrackControls.cpp b/src/tracks/playabletrack/notetrack/ui/NoteTrackControls.cpp
index 8591bec57..15bebb14a 100644
--- a/src/tracks/playabletrack/notetrack/ui/NoteTrackControls.cpp
+++ b/src/tracks/playabletrack/notetrack/ui/NoteTrackControls.cpp
@@ -132,8 +132,8 @@ void NoteTrackMenuTable::OnChangeOctave(wxCommandEvent &event)
 
 BEGIN_POPUP_MENU(NoteTrackMenuTable)
    BEGIN_POPUP_MENU_SECTION( "Basic" )
-      POPUP_MENU_ITEM(OnUpOctaveID, XO("Up &Octave"), OnChangeOctave)
-      POPUP_MENU_ITEM(OnDownOctaveID, XO("Down Octa&ve"), OnChangeOctave)
+      POPUP_MENU_ITEM( "Up", OnUpOctaveID, XO("Up &Octave"), OnChangeOctave)
+      POPUP_MENU_ITEM( "Down", OnDownOctaveID, XO("Down Octa&ve"), OnChangeOctave)
    END_POPUP_MENU_SECTION()
 END_POPUP_MENU()
 
diff --git a/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp b/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp
index 0161199f1..b53d1c4a4 100644
--- a/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp
+++ b/src/tracks/playabletrack/notetrack/ui/NoteTrackVZoomHandle.cpp
@@ -258,20 +258,20 @@ BEGIN_POPUP_MENU(NoteTrackVRulerMenuTable)
 
    BEGIN_POPUP_MENU_SECTION( "Zoom" )
       BEGIN_POPUP_MENU_SECTION( "Basic" )
-         POPUP_MENU_ITEM(OnZoomResetID,      XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
-         POPUP_MENU_ITEM(OnZoomMaxID,        XO("Max Zoom"), OnZoomMax)
+         POPUP_MENU_ITEM( "Reset", OnZoomResetID,      XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
+         POPUP_MENU_ITEM( "Max", OnZoomMaxID,        XO("Max Zoom"), OnZoomMax)
       END_POPUP_MENU_SECTION()
 
       BEGIN_POPUP_MENU_SECTION( "InOut" )
-         POPUP_MENU_ITEM(OnZoomInVerticalID,  XO("Zoom In\tLeft-Click/Left-Drag"),  OnZoomInVertical)
-         POPUP_MENU_ITEM(OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"),     OnZoomOutVertical)
+         POPUP_MENU_ITEM( "In", OnZoomInVerticalID,  XO("Zoom In\tLeft-Click/Left-Drag"),  OnZoomInVertical)
+         POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"),     OnZoomOutVertical)
       END_POPUP_MENU_SECTION()
    END_POPUP_MENU_SECTION()
 
    BEGIN_POPUP_MENU_SECTION( "Pan" )
       BEGIN_POPUP_MENU_SECTION( "Octaves" )
-         POPUP_MENU_ITEM(OnUpOctaveID,   XO("Up &Octave"),   OnUpOctave)
-         POPUP_MENU_ITEM(OnDownOctaveID, XO("Down Octa&ve"), OnDownOctave)
+         POPUP_MENU_ITEM( "Up", OnUpOctaveID,   XO("Up &Octave"),   OnUpOctave)
+         POPUP_MENU_ITEM( "Down", OnDownOctaveID, XO("Down Octa&ve"), OnDownOctave)
       END_POPUP_MENU_SECTION()
    END_POPUP_MENU_SECTION()
 
diff --git a/src/tracks/playabletrack/wavetrack/ui/SpectrumVZoomHandle.cpp b/src/tracks/playabletrack/wavetrack/ui/SpectrumVZoomHandle.cpp
index 71c48dd39..f0ce4a59c 100644
--- a/src/tracks/playabletrack/wavetrack/ui/SpectrumVZoomHandle.cpp
+++ b/src/tracks/playabletrack/wavetrack/ui/SpectrumVZoomHandle.cpp
@@ -281,7 +281,8 @@ BEGIN_POPUP_MENU_SECTION( "Scales" )
    {
       const auto & names = SpectrogramSettings::GetScaleNames();
       for (int ii = 0, nn = names.size(); ii < nn; ++ii) {
-         POPUP_MENU_RADIO_ITEM(OnFirstSpectrumScaleID + ii, names[ii].Msgid(),
+         POPUP_MENU_RADIO_ITEM( names[ii].Internal(),
+            OnFirstSpectrumScaleID + ii, names[ii].Msgid(),
             OnSpectrumScaleType);
       }
    }
@@ -289,10 +290,10 @@ END_POPUP_MENU_SECTION()
 
 
 BEGIN_POPUP_MENU_SECTION( "Zoom" )
-   POPUP_MENU_ITEM(OnZoomResetID,         XO("Zoom Reset"),                     OnZoomReset)
-   POPUP_MENU_ITEM(OnZoomFitVerticalID,   XO("Zoom to Fit\tShift-Right-Click"), OnZoomFitVertical)
-   POPUP_MENU_ITEM(OnZoomInVerticalID,    XO("Zoom In\tLeft-Click/Left-Drag"),  OnZoomInVertical)
-   POPUP_MENU_ITEM(OnZoomOutVerticalID,   XO("Zoom Out\tShift-Left-Click"),     OnZoomOutVertical)
+   POPUP_MENU_ITEM( "Reset", OnZoomResetID,         XO("Zoom Reset"),                     OnZoomReset)
+   POPUP_MENU_ITEM( "Fit", OnZoomFitVerticalID,   XO("Zoom to Fit\tShift-Right-Click"), OnZoomFitVertical)
+   POPUP_MENU_ITEM( "In", OnZoomInVerticalID,    XO("Zoom In\tLeft-Click/Left-Drag"),  OnZoomInVertical)
+   POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID,   XO("Zoom Out\tShift-Left-Click"),     OnZoomOutVertical)
 END_POPUP_MENU_SECTION()
 
 END_POPUP_MENU()
diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp b/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
index 2a451142e..adaaf5217 100644
--- a/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
+++ b/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
@@ -206,13 +206,13 @@ const TranslatableString GetWaveColorStr(int colorIndex)
 
 
 BEGIN_POPUP_MENU(WaveColorMenuTable)
-   POPUP_MENU_RADIO_ITEM(OnInstrument1ID,
+   POPUP_MENU_RADIO_ITEM( "Instrument1", OnInstrument1ID,
       GetWaveColorStr(0), OnWaveColorChange)
-   POPUP_MENU_RADIO_ITEM(OnInstrument2ID,
+   POPUP_MENU_RADIO_ITEM( "Instrument2", OnInstrument2ID,
       GetWaveColorStr(1), OnWaveColorChange)
-   POPUP_MENU_RADIO_ITEM(OnInstrument3ID,
+   POPUP_MENU_RADIO_ITEM( "Instrument3", OnInstrument3ID,
       GetWaveColorStr(2), OnWaveColorChange)
-   POPUP_MENU_RADIO_ITEM(OnInstrument4ID,
+   POPUP_MENU_RADIO_ITEM( "Instrument4", OnInstrument4ID,
       GetWaveColorStr(3), OnWaveColorChange)
 END_POPUP_MENU()
 
@@ -300,11 +300,11 @@ void FormatMenuTable::InitMenu(wxMenu *pMenu)
 }
 
 BEGIN_POPUP_MENU(FormatMenuTable)
-   POPUP_MENU_RADIO_ITEM(On16BitID,
+   POPUP_MENU_RADIO_ITEM( "16Bit", On16BitID,
       GetSampleFormatStr(int16Sample), OnFormatChange)
-   POPUP_MENU_RADIO_ITEM(On24BitID,
-      GetSampleFormatStr(int24Sample), OnFormatChange)
-   POPUP_MENU_RADIO_ITEM(OnFloatID,
+   POPUP_MENU_RADIO_ITEM("24Bit", On24BitID,
+      GetSampleFormatStr( int24Sample), OnFormatChange)
+   POPUP_MENU_RADIO_ITEM( "Float", OnFloatID,
       GetSampleFormatStr(floatSample), OnFormatChange)
 END_POPUP_MENU()
 
@@ -428,19 +428,19 @@ void RateMenuTable::InitMenu(wxMenu *pMenu)
 // If we did, we'd get no message when clicking on Other...
 // when it is already selected.
 BEGIN_POPUP_MENU(RateMenuTable)
-   POPUP_MENU_CHECK_ITEM(OnRate8ID, XO("8000 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate11ID, XO("11025 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate16ID, XO("16000 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate22ID, XO("22050 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate44ID, XO("44100 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate48ID, XO("48000 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate88ID, XO("88200 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate96ID, XO("96000 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate176ID, XO("176400 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate192ID, XO("192000 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate352ID, XO("352800 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRate384ID, XO("384000 Hz"), OnRateChange)
-   POPUP_MENU_CHECK_ITEM(OnRateOtherID, XO("&Other..."), OnRateOther)
+   POPUP_MENU_CHECK_ITEM( "8000", OnRate8ID, XO("8000 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "11025", OnRate11ID, XO("11025 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "16000", OnRate16ID, XO("16000 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "22050", OnRate22ID, XO("22050 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "44100", OnRate44ID, XO("44100 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "48000", OnRate48ID, XO("48000 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "88200", OnRate88ID, XO("88200 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "96000", OnRate96ID, XO("96000 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "176400", OnRate176ID, XO("176400 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "192000", OnRate192ID, XO("192000 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "352800", OnRate352ID, XO("352800 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "384000", OnRate384ID, XO("384000 Hz"), OnRateChange)
+   POPUP_MENU_CHECK_ITEM( "Other", OnRateOtherID, XO("&Other..."), OnRateOther)
 END_POPUP_MENU()
 
 const int nRates = 12;
@@ -771,19 +771,19 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
    BEGIN_POPUP_MENU_SECTION( "SubViews" )
 
    if ( WaveTrackSubViews::slots() > 1 )
-      POPUP_MENU_CHECK_ITEM(OnMultiViewID, XO("&Multi-view"), OnMultiView)
+      POPUP_MENU_CHECK_ITEM( "MultiView", OnMultiViewID, XO("&Multi-view"), OnMultiView)
 
    int id = OnSetDisplayId;
    for ( const auto &type : AllTypes() ) {
       if ( view.GetMultiView() ) {
-         POPUP_MENU_CHECK_ITEM(id++, type.name.Msgid(), OnSetDisplay)
+         POPUP_MENU_CHECK_ITEM( type.name.Internal(), id++, type.name.Msgid(), OnSetDisplay)
       }
       else {
-         POPUP_MENU_RADIO_ITEM(id++, type.name.Msgid(), OnSetDisplay)
+         POPUP_MENU_RADIO_ITEM( type.name.Internal(), id++, type.name.Msgid(), OnSetDisplay)
       }
    }
 
-      POPUP_MENU_ITEM(OnSpectrogramSettingsID, XO("S&pectrogram Settings..."), OnSpectrogramSettings)
+      POPUP_MENU_ITEM( "SpectrogramSettings", OnSpectrogramSettingsID, XO("S&pectrogram Settings..."), OnSpectrogramSettings)
    END_POPUP_MENU_SECTION()
 
    BEGIN_POPUP_MENU_SECTION( "Channels" )
@@ -792,13 +792,13 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
    //   POPUP_MENU_RADIO_ITEM(OnChannelMonoID, XO("&Mono"), OnChannelChange)
    //   POPUP_MENU_RADIO_ITEM(OnChannelLeftID, XO("&Left Channel"), OnChannelChange)
    //   POPUP_MENU_RADIO_ITEM(OnChannelRightID, XO("R&ight Channel"), OnChannelChange)
-      POPUP_MENU_ITEM(OnMergeStereoID, XO("Ma&ke Stereo Track"), OnMergeStereo)
+      POPUP_MENU_ITEM( "MakeStereo", OnMergeStereoID, XO("Ma&ke Stereo Track"), OnMergeStereo)
 
-      POPUP_MENU_ITEM(OnSwapChannelsID, XO("Swap Stereo &Channels"), OnSwapChannels)
-      POPUP_MENU_ITEM(OnSplitStereoID, XO("Spl&it Stereo Track"), OnSplitStereo)
+      POPUP_MENU_ITEM( "Swap", OnSwapChannelsID, XO("Swap Stereo &Channels"), OnSwapChannels)
+      POPUP_MENU_ITEM( "Split", OnSplitStereoID, XO("Spl&it Stereo Track"), OnSplitStereo)
    // DA: Uses split stereo track and then drag pan sliders for split-stereo-to-mono
    #ifndef EXPERIMENTAL_DA
-      POPUP_MENU_ITEM(OnSplitStereoMonoID, XO("Split Stereo to Mo&no"), OnSplitStereoMono)
+      POPUP_MENU_ITEM( "SplitToMono", OnSplitStereoMonoID, XO("Split Stereo to Mo&no"), OnSplitStereoMono)
    #endif
    END_POPUP_MENU_SECTION()
 
@@ -810,17 +810,17 @@ BEGIN_POPUP_MENU(WaveTrackMenuTable)
       ) );
       if( hasWaveform ){
          BEGIN_POPUP_MENU_SECTION( "WaveColor" )
-            POPUP_MENU_SUB_MENU(WaveColorMenuTable)
+            POPUP_MENU_SUB_MENU( "WaveColor", WaveColorMenuTable)
          END_POPUP_MENU_SECTION()
       }
    }
 
    BEGIN_POPUP_MENU_SECTION( "Format" )
-      POPUP_MENU_SUB_MENU(FormatMenuTable)
+      POPUP_MENU_SUB_MENU( "Format", FormatMenuTable)
    END_POPUP_MENU_SECTION()
 
    BEGIN_POPUP_MENU_SECTION( "Rate" )
-      POPUP_MENU_SUB_MENU(RateMenuTable)
+      POPUP_MENU_SUB_MENU( "Rate", RateMenuTable)
    END_POPUP_MENU_SECTION()
 END_POPUP_MENU()
 
diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveformVZoomHandle.cpp b/src/tracks/playabletrack/wavetrack/ui/WaveformVZoomHandle.cpp
index 1273515a2..4611b9177 100644
--- a/src/tracks/playabletrack/wavetrack/ui/WaveformVZoomHandle.cpp
+++ b/src/tracks/playabletrack/wavetrack/ui/WaveformVZoomHandle.cpp
@@ -283,7 +283,8 @@ BEGIN_POPUP_MENU(WaveformVRulerMenuTable)
    {
       const auto & names = WaveformSettings::GetScaleNames();
       for (int ii = 0, nn = names.size(); ii < nn; ++ii) {
-         POPUP_MENU_RADIO_ITEM(OnFirstWaveformScaleID + ii, names[ii].Msgid(),
+         POPUP_MENU_RADIO_ITEM( names[ii].Internal(),
+            OnFirstWaveformScaleID + ii, names[ii].Msgid(),
             OnWaveformScaleType);
       }
    }
@@ -291,18 +292,18 @@ BEGIN_POPUP_MENU(WaveformVRulerMenuTable)
 
    BEGIN_POPUP_MENU_SECTION( "Zoom" )
       BEGIN_POPUP_MENU_SECTION( "Basic" )
-         POPUP_MENU_ITEM(OnZoomFitVerticalID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
-         POPUP_MENU_ITEM(OnZoomDiv2ID,        XO("Zoom x1/2"),                     OnZoomDiv2Vertical)
-         POPUP_MENU_ITEM(OnZoomTimes2ID,      XO("Zoom x2"),                       OnZoomTimes2Vertical)
+         POPUP_MENU_ITEM( "Reset", OnZoomFitVerticalID, XO("Zoom Reset\tShift-Right-Click"), OnZoomReset)
+         POPUP_MENU_ITEM( "TimesHalf", OnZoomDiv2ID,        XO("Zoom x1/2"),                     OnZoomDiv2Vertical)
+         POPUP_MENU_ITEM( "TimesTwo", OnZoomTimes2ID,      XO("Zoom x2"),                       OnZoomTimes2Vertical)
 
    #ifdef EXPERIMENTAL_HALF_WAVE
-         POPUP_MENU_ITEM(OnZoomHalfWaveID,    XO("Half Wave"),                     OnZoomHalfWave)
+         POPUP_MENU_ITEM( "HalfWave", OnZoomHalfWaveID,    XO("Half Wave"),                     OnZoomHalfWave)
    #endif
       END_POPUP_MENU_SECTION()
 
       BEGIN_POPUP_MENU_SECTION( "InOut" )
-         POPUP_MENU_ITEM(OnZoomInVerticalID,  XO("Zoom In\tLeft-Click/Left-Drag"),  OnZoomInVertical)
-         POPUP_MENU_ITEM(OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"),     OnZoomOutVertical)
+         POPUP_MENU_ITEM( "In", OnZoomInVerticalID,  XO("Zoom In\tLeft-Click/Left-Drag"),  OnZoomInVertical)
+         POPUP_MENU_ITEM( "Out", OnZoomOutVerticalID, XO("Zoom Out\tShift-Left-Click"),     OnZoomOutVertical)
       END_POPUP_MENU_SECTION()
    END_POPUP_MENU_SECTION()
 
diff --git a/src/tracks/timetrack/ui/TimeTrackControls.cpp b/src/tracks/timetrack/ui/TimeTrackControls.cpp
index 608d42d51..ea8d389bb 100644
--- a/src/tracks/timetrack/ui/TimeTrackControls.cpp
+++ b/src/tracks/timetrack/ui/TimeTrackControls.cpp
@@ -163,13 +163,13 @@ void TimeTrackMenuTable::OnTimeTrackLogInt(wxCommandEvent & /*event*/)
 
 BEGIN_POPUP_MENU(TimeTrackMenuTable)
    BEGIN_POPUP_MENU_SECTION( "Scales" )
-      POPUP_MENU_RADIO_ITEM(OnTimeTrackLinID, XO("&Linear scale"), OnTimeTrackLin)
-      POPUP_MENU_RADIO_ITEM(OnTimeTrackLogID, XO("L&ogarithmic scale"), OnTimeTrackLog)
+      POPUP_MENU_RADIO_ITEM( "Linear", OnTimeTrackLinID, XO("&Linear scale"), OnTimeTrackLin)
+      POPUP_MENU_RADIO_ITEM( "Log", OnTimeTrackLogID, XO("L&ogarithmic scale"), OnTimeTrackLog)
    END_POPUP_MENU_SECTION()
 
    BEGIN_POPUP_MENU_SECTION( "Other" )
-      POPUP_MENU_ITEM(OnSetTimeTrackRangeID, XO("&Range..."), OnSetTimeTrackRange)
-      POPUP_MENU_CHECK_ITEM(OnTimeTrackLogIntID, XO("Logarithmic &Interpolation"), OnTimeTrackLogInt)
+      POPUP_MENU_ITEM( "Range", OnSetTimeTrackRangeID, XO("&Range..."), OnSetTimeTrackRange)
+      POPUP_MENU_CHECK_ITEM( "LogInterp", OnTimeTrackLogIntID, XO("Logarithmic &Interpolation"), OnTimeTrackLogInt)
    END_POPUP_MENU_SECTION()
 END_POPUP_MENU()
 
diff --git a/src/tracks/ui/CommonTrackControls.cpp b/src/tracks/ui/CommonTrackControls.cpp
index b92c5a056..30d4d7285 100644
--- a/src/tracks/ui/CommonTrackControls.cpp
+++ b/src/tracks/ui/CommonTrackControls.cpp
@@ -128,10 +128,10 @@ void TrackMenuTable::InitMenu(wxMenu *pMenu)
 
 BEGIN_POPUP_MENU(TrackMenuTable)
    BEGIN_POPUP_MENU_SECTION( "Basic" )
-      POPUP_MENU_ITEM(OnSetNameID, XO("&Name..."), OnSetName)
+      POPUP_MENU_ITEM( "Name", OnSetNameID, XO("&Name..."), OnSetName)
    END_POPUP_MENU_SECTION()
    BEGIN_POPUP_MENU_SECTION( "Move" )
-      POPUP_MENU_ITEM(
+      POPUP_MENU_ITEM( "Up",
          // It is not correct to use NormalizedKeyString::Display here --
          // wxWidgets will apply its equivalent to the key names passed to menu
          // functions.
@@ -144,7 +144,7 @@ BEGIN_POPUP_MENU(TrackMenuTable)
              wxT("\t")
          ),
          OnMoveTrack)
-      POPUP_MENU_ITEM(
+      POPUP_MENU_ITEM( "Down",
          OnMoveDownID,
          XO("Move Track &Down").Join(
             Verbatim(
@@ -154,7 +154,7 @@ BEGIN_POPUP_MENU(TrackMenuTable)
              wxT("\t")
          ),
          OnMoveTrack)
-      POPUP_MENU_ITEM(
+      POPUP_MENU_ITEM( "Top",
          OnMoveTopID,
          XO("Move Track to &Top").Join(
             Verbatim(
@@ -164,7 +164,7 @@ BEGIN_POPUP_MENU(TrackMenuTable)
              wxT("\t")
          ),
          OnMoveTrack)
-      POPUP_MENU_ITEM(
+      POPUP_MENU_ITEM( "Bottom",
          OnMoveBottomID,
          XO("Move Track to &Bottom").Join(
             Verbatim(
diff --git a/src/widgets/PopupMenuTable.h b/src/widgets/PopupMenuTable.h
index 35b1a1c73..ef42402d1 100644
--- a/src/widgets/PopupMenuTable.h
+++ b/src/widgets/PopupMenuTable.h
@@ -136,7 +136,7 @@ BEGIN_POPUP_MENU(MyTable)
    // This is inside a function and can contain arbitrary code.  But usually
    // you only need a sequence of macro calls:
 
-   POPUP_MENU_ITEM(OnCutSelectedTextID,     XO("Cu&t"),          OnCutSelectedText)
+   POPUP_MENU_ITEM("Cut", OnCutSelectedTextID,     XO("Cu&t"),          OnCutSelectedText)
    // etc.
  
 END_POPUP_MENU()
@@ -166,7 +166,7 @@ That's all!
 void HandlerClass::Populate() { \
    using My = HandlerClass;
 
-#define POPUP_MENU_APPEND(type, id, string, memFn, subTable) \
+#define POPUP_MENU_APPEND(stringId, type, id, string, memFn, subTable) \
    mContents.push_back( Entry { \
       type, \
       id, \
@@ -175,37 +175,37 @@ void HandlerClass::Populate() { \
       subTable \
    } );
 
-#define POPUP_MENU_APPEND_ITEM(type, id, string, memFn) \
-   POPUP_MENU_APPEND( \
+#define POPUP_MENU_APPEND_ITEM(stringId, type, id, string, memFn) \
+   POPUP_MENU_APPEND( stringId, \
       type, \
       id, \
       string, \
       (wxCommandEventFunction) (&My::memFn), \
       nullptr )
 
-#define POPUP_MENU_ITEM(id, string, memFn) \
-   POPUP_MENU_APPEND_ITEM(Entry::Item, id, string, memFn);
+#define POPUP_MENU_ITEM(stringId, id, string, memFn) \
+   POPUP_MENU_APPEND_ITEM(stringId, Entry::Item, id, string, memFn);
 
-#define POPUP_MENU_RADIO_ITEM(id, string, memFn) \
-   POPUP_MENU_APPEND_ITEM(Entry::RadioItem, id, string, memFn);
+#define POPUP_MENU_RADIO_ITEM(stringId, id, string, memFn) \
+   POPUP_MENU_APPEND_ITEM(stringId, Entry::RadioItem, id, string, memFn);
 
-#define POPUP_MENU_CHECK_ITEM(id, string, memFn) \
-   POPUP_MENU_APPEND_ITEM(Entry::CheckItem, id, string, memFn);
+#define POPUP_MENU_CHECK_ITEM(stringId, id, string, memFn) \
+   POPUP_MENU_APPEND_ITEM(stringId, Entry::CheckItem, id, string, memFn);
 
 // classname names a class that derives from MenuTable and defines Instance()
-#define POPUP_MENU_SUB_MENU(classname) \
-   POPUP_MENU_APPEND( \
+#define POPUP_MENU_SUB_MENU(stringId, classname) \
+   POPUP_MENU_APPEND( stringId, \
       Entry::SubMenu, -1, classname::Instance().Caption(), nullptr, &classname::Instance() );
 
 #define BEGIN_POPUP_MENU_SECTION( name ) \
-   POPUP_MENU_APPEND( \
+   POPUP_MENU_APPEND( "", \
       Entry::Separator, -1, {}, nullptr, nullptr );
 
 #define END_POPUP_MENU_SECTION()
 
 // ends function
 #define END_POPUP_MENU() \
-   POPUP_MENU_APPEND( \
+   POPUP_MENU_APPEND( "", \
       Entry::Invalid, -1, {}, nullptr, nullptr ) \
    }