Index: /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 7859)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 7860)
@@ -205,4 +205,6 @@
         /** The table of default providers **/
         public final JTable defaultTable;
+        /** The selection listener synchronizing map display with table of default providers **/
+        private final DefListSelectionListener defaultTableListener;
         /** The map displaying imagery bounds of selected default providers **/
         public final JMapViewer defaultMap;
@@ -331,5 +333,6 @@
             add(defaultMap, GBC.std().insets(5, 5, 0, 0).fill(GridBagConstraints.BOTH).weight(0.33, 0.6).insets(5, 0, 0, 0));
 
-            defaultTable.getSelectionModel().addListSelectionListener(new DefListSelectionListener());
+            defaultTableListener = new DefListSelectionListener();
+            defaultTable.getSelectionModel().addListSelectionListener(defaultTableListener);
 
             defaultToolbar = new JToolBar(JToolBar.VERTICAL);
@@ -367,5 +370,4 @@
             activeToolbar.add(remove);
             add(activeToolbar, GBC.eol().anchor(GBC.NORTH).insets(0, 0, 5, 5));
-
         }
 
@@ -381,14 +383,18 @@
             }
 
+            private void clearMap() {
+                defaultMap.removeAllMapRectangles();
+                defaultMap.removeAllMapPolygons();
+                mapRectangles.clear();
+                mapPolygons.clear();
+            }
+
             @Override
             public void valueChanged(ListSelectionEvent e) {
-                // First index is set to -1 when the list is refreshed, so discard all map rectangles and polygons
+                // First index can be set to -1 when the list is refreshed, so discard all map rectangles and polygons
                 if (e.getFirstIndex() == -1) {
-                    defaultMap.removeAllMapRectangles();
-                    defaultMap.removeAllMapPolygons();
-                    mapRectangles.clear();
-                    mapPolygons.clear();
+                    clearMap();
+                } else if (!e.getValueIsAdjusting()) {
                     // Only process complete (final) selection events
-                } else if (!e.getValueIsAdjusting()) {
                     for (int i = e.getFirstIndex(); i<=e.getLastIndex(); i++) {
                         updateBoundsAndShapes(i);
@@ -494,4 +500,7 @@
         private class RemoveEntryAction extends AbstractAction implements ListSelectionListener {
 
+            /**
+             * Constructs a new {@code RemoveEntryAction}.
+             */
             public RemoveEntryAction() {
                 putValue(NAME, tr("Remove"));
@@ -520,4 +529,8 @@
 
         private class ActivateAction extends AbstractAction implements ListSelectionListener {
+
+            /**
+             * Constructs a new {@code ActivateAction}.
+             */
             public ActivateAction() {
                 putValue(NAME, tr("Activate"));
@@ -583,4 +596,8 @@
 
         private class ReloadAction extends AbstractAction {
+
+            /**
+             * Constructs a new {@code ReloadAction}.
+             */
             public ReloadAction() {
                 putValue(SHORT_DESCRIPTION, tr("reload defaults"));
@@ -592,4 +609,6 @@
                 layerInfo.loadDefaults(true);
                 defaultModel.fireTableDataChanged();
+                defaultTable.getSelectionModel().clearSelection();
+                defaultTableListener.clearMap();
                 /* loading new file may change active layers */
                 activeModel.fireTableDataChanged();
@@ -742,6 +761,6 @@
                 scrollPane.setPreferredSize(new Dimension(400, 400));
                 box.add(scrollPane);
-                int option = JOptionPane.showConfirmDialog(Main.parent, box, tr("Please abort if you are not sure"), JOptionPane.YES_NO_OPTION,
-                        JOptionPane.WARNING_MESSAGE);
+                int option = JOptionPane.showConfirmDialog(Main.parent, box, tr("Please abort if you are not sure"),
+                        JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
                 if (option == JOptionPane.YES_OPTION)
                     return true;
@@ -811,5 +830,9 @@
          * The table model for imagery offsets list
          */
-        class OffsetsBookmarksModel extends DefaultTableModel {
+        private class OffsetsBookmarksModel extends DefaultTableModel {
+
+            /**
+             * Constructs a new {@code OffsetsBookmarksModel}.
+             */
             public OffsetsBookmarksModel() {
                 setColumnIdentifiers(new String[] { tr("Projection"),  tr("Layer"), tr("Name"), tr("Easting"), tr("Northing"),});
