Index: trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java	(revision 5069)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java	(revision 5070)
@@ -17,5 +17,4 @@
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
-import java.util.HashMap;
 import java.util.Map;
 
@@ -27,5 +26,4 @@
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
-import javax.swing.JEditorPane;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
@@ -149,5 +147,5 @@
     }
 
-    private static class ShortcutTableCellRenderer extends DefaultTableCellRenderer {
+    private class ShortcutTableCellRenderer extends DefaultTableCellRenderer {
 
         private boolean name;
@@ -156,32 +154,30 @@
             this.name = name;
         }
-
+        
         @Override
         public Component getTableCellRendererComponent(JTable table, Object value, boolean
                 isSelected, boolean hasFocus, int row, int column) {
-            if(value instanceof Shortcut)
-            {
-                Shortcut sc = (Shortcut) value;
-                JLabel label = (JLabel) super.getTableCellRendererComponent(
-                    table, name ? sc.getLongText() : sc.getKeyText(), isSelected, hasFocus, row, column);
-                label.setBackground(Main.pref.getUIColor("Table.background"));
-                if (isSelected) {
-                    label.setForeground(Main.pref.getUIColor("Table.foreground"));
-                }
-                if(sc.getAssignedUser()) {
-                    label.setBackground(Main.pref.getColor(
-                            marktr("Shortcut Background: User"),
-                            new Color(200,255,200)));
-                } else if(!sc.getAssignedDefault()) {
-                    label.setBackground(Main.pref.getColor(
-                            marktr("Shortcut Background: Modified"),
-                            new Color(255,255,200)));
-                }
-                return label;
-            }
-            return null;
-        }
-    }
-
+            int row1 = shortcutTable.convertRowIndexToModel(row);
+            Shortcut sc = (Shortcut)model.getValueAt(row1, -1);
+            if (sc==null) return null;
+            JLabel label = (JLabel) super.getTableCellRendererComponent(
+                table, name ? sc.getLongText() : sc.getKeyText(), isSelected, hasFocus, row, column);
+            label.setBackground(Main.pref.getUIColor("Table.background"));
+            if (isSelected) {
+                label.setForeground(Main.pref.getUIColor("Table.foreground"));
+            }
+            if(sc.getAssignedUser()) {
+                label.setBackground(Main.pref.getColor(
+                        marktr("Shortcut Background: User"),
+                        new Color(200,255,200)));
+            } else if(!sc.getAssignedDefault()) {
+                label.setBackground(Main.pref.getColor(
+                        marktr("Shortcut Background: Modified"),
+                        new Color(255,255,200)));
+            }
+            return label;
+        }
+    }
+    
     private void initComponents() {
         JPanel listPane = new JPanel();
Index: trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/ShortcutPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/ShortcutPreference.java	(revision 5069)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/ShortcutPreference.java	(revision 5070)
@@ -65,5 +65,5 @@
         }
         public Object getValueAt(int row, int col) {
-            return data.get(row);
+            return (col==0)?  data.get(row).getLongText() : data.get(row);
         }
         @Override
