Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 16606)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 16607)
@@ -207,5 +207,5 @@
             if (columnIndex == 1 && aValue instanceof Color) {
                 data.get(rowIndex).info.setValue((Color) aValue);
-                fireTableRowsUpdated(rowIndex, rowIndex);
+                fireTableCellUpdated(rowIndex, columnIndex);
             }
         }
@@ -265,6 +265,5 @@
         colorEdit.addActionListener(e -> {
             int sel = colors.getSelectedRow();
-            sel = colors.convertRowIndexToModel(sel);
-            ColorEntry ce = tableModel.getEntry(sel);
+            ColorEntry ce = (ColorEntry) colors.getValueAt(sel, 0);
             JColorChooser chooser = new JColorChooser(ce.getDisplayColor());
             int answer = JOptionPane.showConfirmDialog(
@@ -280,6 +279,5 @@
         defaultSet.addActionListener(e -> {
             int sel = colors.getSelectedRow();
-            sel = colors.convertRowIndexToModel(sel);
-            ColorEntry ce = tableModel.getEntry(sel);
+            ColorEntry ce = (ColorEntry) colors.getValueAt(sel, 0);
             Color c = ce.info.getDefaultValue();
             if (c != null) {
@@ -290,11 +288,11 @@
         defaultAll.addActionListener(e -> {
             List<ColorEntry> data = tableModel.getData();
-            for (int i = 0; i < data.size(); ++i) {
-                ColorEntry ce = data.get(i);
+            for (ColorEntry ce : data) {
                 Color c = ce.info.getDefaultValue();
                 if (c != null) {
-                    colors.setValueAt(c, i, 1);
+                    ce.info.setValue(c);
                 }
             }
+            tableModel.fireTableDataChanged();
         });
         remove = new JButton(tr("Remove"));
@@ -437,9 +435,8 @@
     private void updateEnabledState() {
         int sel = colors.getSelectedRow();
-        if (sel < 0 || sel >= tableModel.getRowCount()) {
+        if (sel < 0 || sel >= colors.getRowCount()) {
             return;
         }
-        sel = colors.convertRowIndexToModel(sel);
-        ColorEntry ce = tableModel.getEntry(sel);
+        ColorEntry ce = (ColorEntry) colors.getValueAt(sel, 0);
         remove.setEnabled(ce != null && isRemoveColor(ce));
         colorEdit.setEnabled(ce != null);
