Index: trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 6363)
+++ trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 6364)
@@ -147,4 +147,7 @@
         @pref String icon;
 
+        /**
+         * Constructs a new {@code ImageryPreferenceEntry}.
+         */
         public ImageryPreferenceEntry() {
         }
@@ -191,6 +194,14 @@
             }
         }
-    }
-
+
+        @Override
+        public String toString() {
+            return "ImageryPreferenceEntry [name=" + name + "]";
+        }
+    }
+
+    /**
+     * Constructs a new {@code ImageryInfo}.
+     */
     public ImageryInfo() {
     }
Index: trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapBBoxChooser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapBBoxChooser.java	(revision 6363)
+++ trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapBBoxChooser.java	(revision 6364)
@@ -42,5 +42,5 @@
 import org.openstreetmap.josm.gui.layer.TMSLayer;
 
-public class SlippyMapBBoxChooser extends JMapViewer implements BBoxChooser{
+public class SlippyMapBBoxChooser extends JMapViewer implements BBoxChooser {
 
     public interface TileSourceProvider {
@@ -139,5 +139,4 @@
     }
 
-
     /**
      * Plugins that wish to add custom tile sources to slippy map choose should call this method
@@ -175,11 +174,12 @@
     private Bounds bbox;
 
-    // upper left and lower right corners of the selection rectangle (x/y on
-    // ZOOM_MAX)
+    // upper left and lower right corners of the selection rectangle (x/y on ZOOM_MAX)
     Point iSelectionRectStart;
     Point iSelectionRectEnd;
 
+    /**
+     * Constructs a new {@code SlippyMapBBoxChooser}.
+     */
     public SlippyMapBBoxChooser() {
-        super();
         TMSLayer.setMaxWorkers();
         cachedLoader = TMSLayer.loaderFactory.makeTileLoader(this);
@@ -191,6 +191,5 @@
         setMinimumSize(new Dimension(350, 350 / 2));
         // We need to set an initial size - this prevents a wrong zoom selection
-        // for
-        // the area before the component has been displayed the first time
+        // for the area before the component has been displayed the first time
         setBounds(new Rectangle(getMinimumSize()));
         if (cachedLoader == null) {
@@ -201,8 +200,5 @@
         setMaxTilesInMemory(Main.pref.getInteger("slippy_map_chooser.max_tiles", 1000));
 
-        List<TileSource> tileSources = new ArrayList<TileSource>();
-        for (TileSourceProvider provider: providers) {
-            tileSources.addAll(provider.getTileSources());
-        }
+        List<TileSource> tileSources = getTileSources();
 
         iSourceButton = new SourceButton(tileSources);
@@ -224,4 +220,12 @@
 
         new SlippyMapControler(this, this, iSizeButton, iSourceButton);
+    }
+    
+    private List<TileSource> getTileSources() {
+        List<TileSource> tileSources = new ArrayList<TileSource>();
+        for (TileSourceProvider provider: providers) {
+            tileSources.addAll(provider.getTileSources());
+        }
+        return tileSources;
     }
 
@@ -390,3 +394,11 @@
         repaint();
     }
+    
+    /**
+     * Refreshes the tile sources
+     * @since 6364
+     */
+    public final void refreshTileSources() {
+        iSourceButton.setSources(getTileSources());
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/bbox/SourceButton.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/bbox/SourceButton.java	(revision 6363)
+++ trunk/src/org/openstreetmap/josm/gui/bbox/SourceButton.java	(revision 6364)
@@ -8,9 +8,10 @@
 import java.awt.Point;
 import java.awt.RenderingHints;
-import java.util.List;
+import java.util.Collection;
 
 import javax.swing.ImageIcon;
 
 import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -23,5 +24,5 @@
     private int layerHeight;
 
-    private final TileSource[] sources;
+    private TileSource[] sources;
 
     private ImageIcon enlargeImage;
@@ -34,9 +35,19 @@
     public static final int HIDE_OR_SHOW = 1;
 
-    public SourceButton(List<TileSource> sources) {
-        this.sources = sources.toArray(new TileSource[sources.size()]);
+    public SourceButton(Collection<TileSource> sources) {
+        setSources(sources);
         this.currentMap = 2;
         enlargeImage = ImageProvider.get("layer-switcher-maximize.png");
         shrinkImage = ImageProvider.get("layer-switcher-minimize.png");
+    }
+    
+    /**
+     * Set the tile sources.
+     * @param sources The tile sources to display
+     * @since 6364
+     */
+    public final void setSources(Collection<TileSource> sources) {
+        CheckParameterUtil.ensureParameterNotNull(sources, "sources");
+        this.sources = sources.toArray(new TileSource[sources.size()]);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 6363)
+++ trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 6364)
@@ -66,4 +66,5 @@
     }
 
+    protected SlippyMapChooser slippyMapChooser;
     protected final List<DownloadSelection> downloadSelections = new ArrayList<DownloadSelection>();
     protected final JTabbedPane tpDownloadAreaSelectors = new JTabbedPane();
@@ -102,5 +103,5 @@
 
         // predefined download selections
-        downloadSelections.add(new SlippyMapChooser());
+        downloadSelections.add(slippyMapChooser = new SlippyMapChooser());
         downloadSelections.add(new BookmarkSelection());
         downloadSelections.add(new BoundingBoxSelection());
@@ -293,4 +294,14 @@
     }
 
+    /**
+     * Refreshes the tile sources
+     * @since 6364
+     */
+    public final void refreshTileSources() {
+        if (slippyMapChooser != null) {
+            slippyMapChooser.refreshTileSources();
+        }
+    }
+    
     /**
      * Remembers the current settings in the download dialog
Index: trunk/src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java	(revision 6363)
+++ trunk/src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java	(revision 6364)
@@ -22,5 +22,5 @@
  *
  */
-public class SlippyMapChooser extends JPanel implements DownloadSelection, PropertyChangeListener{
+public class SlippyMapChooser extends JPanel implements DownloadSelection, PropertyChangeListener {
 
     private DownloadDialog iGui;
@@ -81,3 +81,13 @@
         }
     }
+    
+    /**
+     * Refreshes the tile sources
+     * @since 6364
+     */
+    public final void refreshTileSources() {
+        if (pnlSlippyMapBBoxChooser != null) {
+            pnlSlippyMapBBoxChooser.refreshTileSources();
+        }
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 6363)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 6364)
@@ -57,4 +57,5 @@
 import org.openstreetmap.josm.data.imagery.OffsetBookmark;
 import org.openstreetmap.josm.data.imagery.Shape;
+import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
@@ -141,4 +142,6 @@
         Main.main.menu.imageryMenu.refreshOffsetMenu();
         OffsetBookmark.saveBookmarks();
+        
+        DownloadDialog.getInstance().refreshTileSources();
 
         boolean commonRestartRequired = commonSettings.saveSettings();
