Index: /trunk/src/org/openstreetmap/josm/gui/widgets/TextContextualPopupMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/widgets/TextContextualPopupMenu.java	(revision 19323)
+++ /trunk/src/org/openstreetmap/josm/gui/widgets/TextContextualPopupMenu.java	(revision 19324)
@@ -8,4 +8,5 @@
 import java.awt.event.KeyEvent;
 import java.beans.PropertyChangeListener;
+import java.util.Optional;
 
 import javax.swing.AbstractAction;
@@ -26,4 +27,5 @@
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.PlatformManager;
+import org.openstreetmap.josm.tools.Shortcut;
 
 /**
@@ -98,8 +100,20 @@
             component.getDocument().addUndoableEditListener(undoEditListener);
             if (!GraphicsEnvironment.isHeadless()) {
-                component.getInputMap().put(
-                        KeyStroke.getKeyStroke(KeyEvent.VK_Z, PlatformManager.getPlatform().getMenuShortcutKeyMaskEx()), undoAction);
-                component.getInputMap().put(
-                        KeyStroke.getKeyStroke(KeyEvent.VK_Y, PlatformManager.getPlatform().getMenuShortcutKeyMaskEx()), redoAction);
+                final Optional<Shortcut> undoShortcut = Shortcut.listAll().stream()
+                        .filter(shortcut -> "system:undo".equals(shortcut.getShortText())).findFirst();
+                final Optional<Shortcut> redoShortcut = Shortcut.listAll().stream()
+                        .filter(shortcut -> "system:redo".equals(shortcut.getShortText())).findFirst();
+                if (undoShortcut.isPresent()) {
+                    component.getInputMap().put(undoShortcut.get().getKeyStroke(), undoAction);
+                } else {
+                    component.getInputMap().put(
+                            KeyStroke.getKeyStroke(KeyEvent.VK_Z, PlatformManager.getPlatform().getMenuShortcutKeyMaskEx()), undoAction);
+                }
+                if (redoShortcut.isPresent()) {
+                    component.getInputMap().put(redoShortcut.get().getKeyStroke(), redoAction);
+                } else {
+                    component.getInputMap().put(
+                            KeyStroke.getKeyStroke(KeyEvent.VK_Y, PlatformManager.getPlatform().getMenuShortcutKeyMaskEx()), redoAction);
+                }
             }
             undoRedo = true;
