Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 18292)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 18293)
@@ -112,5 +112,4 @@
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.spi.preferences.Config;
-import org.openstreetmap.josm.spi.preferences.PreferenceChangedListener;
 import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent;
 import org.openstreetmap.josm.tools.AlphanumComparator;
@@ -142,5 +141,6 @@
  */
 public class PropertiesDialog extends ToggleDialog
-implements DataSelectionListener, ActiveLayerChangeListener, DataSetListenerAdapter.Listener, PreferenceChangedListener, TaggingPresetListener {
+implements DataSelectionListener, ActiveLayerChangeListener, DataSetListenerAdapter.Listener, TaggingPresetListener {
+    private final BooleanProperty PROP_DISPLAY_DISCARDABLE_KEYS = new BooleanProperty("display.discardable-keys", false);
 
     /**
@@ -304,5 +304,4 @@
         editHelper.loadTagsIfNeeded();
 
-        Config.getPref().addKeyPreferenceChangeListener("display.discardable-keys", this);
         TaggingPresets.addListener(this);
     }
@@ -618,5 +617,4 @@
         membershipTable.removeMouseListener(popupMenuLauncher);
         super.destroy();
-        Config.getPref().removeKeyPreferenceChangeListener("display.discardable-keys", this);
         TaggingPresets.removeListener(this);
         Container parent = pluginHook.getParent();
@@ -651,5 +649,5 @@
         tagData.setRowCount(0);
 
-        final boolean displayDiscardableKeys = Config.getPref().getBoolean("display.discardable-keys", false);
+        final boolean displayDiscardableKeys = PROP_DISPLAY_DISCARDABLE_KEYS.get();
         final Map<String, Integer> keyCount = new HashMap<>();
         final Map<String, String> tags = new HashMap<>();
@@ -769,13 +767,15 @@
 
     /**
-     * Re-load data when display preference change
+     * Reloads data when the {@code display.discardable-keys} preference changes
      */
     @Override
     public void preferenceChanged(PreferenceChangeEvent e) {
-        if (MainApplication.getLayerManager().getActiveData() != null) {
-            updateSelection();
-        }
-    }
-
+        super.preferenceChanged(e);
+        if (PROP_DISPLAY_DISCARDABLE_KEYS.getKey().equals(e.getKey())) {
+            if (MainApplication.getLayerManager().getActiveData() != null) {
+                updateSelection();
+            }
+        }
+    }
 
     /* ---------------------------------------------------------------------------------- */
