Index: applications/editors/josm/plugins/slippy_map_chooser/build.xml
===================================================================
--- applications/editors/josm/plugins/slippy_map_chooser/build.xml	(revision 13318)
+++ applications/editors/josm/plugins/slippy_map_chooser/build.xml	(revision 13327)
@@ -6,5 +6,5 @@
             <os family="windows"/>
         </and>
-    </condition>
+    </condition>	
 <!-- compilation properties -->
     <property name="josm.build.dir"   value="../../core"/>
Index: applications/editors/josm/plugins/slippy_map_chooser/src/OsmMapControl.java
===================================================================
--- applications/editors/josm/plugins/slippy_map_chooser/src/OsmMapControl.java	(revision 13318)
+++ applications/editors/josm/plugins/slippy_map_chooser/src/OsmMapControl.java	(revision 13327)
@@ -99,5 +99,5 @@
                 iSlippyMapChooser.repaint();
                 
-            }else if(sourceButton == SourceButton.MAPNIK || sourceButton == SourceButton.OSMARENDER) {
+            }else if(sourceButton == SourceButton.MAPNIK || sourceButton == SourceButton.OSMARENDER || sourceButton == SourceButton.CYCLEMAP) {
                 iSlippyMapChooser.toggleMapSource(sourceButton);
             }
Index: applications/editors/josm/plugins/slippy_map_chooser/src/SlippyMapChooser.java
===================================================================
--- applications/editors/josm/plugins/slippy_map_chooser/src/SlippyMapChooser.java	(revision 13318)
+++ applications/editors/josm/plugins/slippy_map_chooser/src/SlippyMapChooser.java	(revision 13327)
@@ -26,4 +26,5 @@
 import org.openstreetmap.gui.jmapviewer.OsmTileLoader;
 import org.openstreetmap.gui.jmapviewer.OsmTileSource;
+import org.openstreetmap.gui.jmapviewer.OsmTileSource.CycleMap;
 import org.openstreetmap.gui.jmapviewer.interfaces.MapMarker;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
@@ -56,5 +57,5 @@
     private Dimension iScreenSize;
 
-    private TileSource[] sources = { new OsmTileSource.Mapnik(), new OsmTileSource.TilesAtHome() };
+    private TileSource[] sources = { new OsmTileSource.Mapnik(), new OsmTileSource.TilesAtHome(),new OsmTileSource.CycleMap()};
     TileLoader cachedLoader;
     TileLoader uncachedLoader;
@@ -78,6 +79,9 @@
         String mapStyle = Main.pref.get("slippy_map_chooser.mapstyle", "mapnik");
         if(mapStyle.equals("osmarender")) {
-            iSourceButton.setIsMapStyleMapnik(false);
+            iSourceButton.setMapStyle(SourceButton.OSMARENDER);
             this.setTileSource(sources[1]);
+        }else if(mapStyle.equals("cyclemap")){
+        	 iSourceButton.setMapStyle(SourceButton.CYCLEMAP);
+             this.setTileSource(sources[2]);
         }
         else {
@@ -261,5 +265,8 @@
             this.setTileSource(sources[0]);
             Main.pref.put("slippy_map_chooser.mapstyle", "mapnik");
-        } else {
+        }else if (mapSource == SourceButton.CYCLEMAP) {
+            this.setTileSource(sources[2]);
+            Main.pref.put("slippy_map_chooser.mapstyle", "cyclemap");
+        }else {
             this.setTileSource(sources[1]);
             Main.pref.put("slippy_map_chooser.mapstyle", "osmarender");
Index: applications/editors/josm/plugins/slippy_map_chooser/src/SourceButton.java
===================================================================
--- applications/editors/josm/plugins/slippy_map_chooser/src/SourceButton.java	(revision 13318)
+++ applications/editors/josm/plugins/slippy_map_chooser/src/SourceButton.java	(revision 13327)
@@ -15,12 +15,14 @@
     private ImageIcon imageMapnik;
     private ImageIcon imageOsmarender;
+    private ImageIcon imageCycleMap;
 
     private boolean isEnlarged = false;
 
-    private boolean isMapnik = true;
+    private int currentMap = MAPNIK;
 
     public static final int HIDE_OR_SHOW = 1;
     public static final int MAPNIK = 2;
     public static final int OSMARENDER = 3;
+    public static final int CYCLEMAP = 4;
 
     public SourceButton() {
@@ -29,4 +31,5 @@
         imageMapnik = ImageProvider.get("", "blue_Mapnik.png");
         imageOsmarender = ImageProvider.get("", "blue_Osmarender.png");
+        imageCycleMap = ImageProvider.get("","blue_CycleMap.png");
     }
 
@@ -34,8 +37,12 @@
 
         if (isEnlarged) {
-            if (isMapnik) {
+            if (currentMap == MAPNIK) {
                 g.drawImage(imageMapnik.getImage(), g.getClipBounds().width
                         - imageMapnik.getIconWidth(), y, null);
-            } else {
+            }else if(currentMap == CYCLEMAP){
+            	 g.drawImage(imageCycleMap.getImage(), g.getClipBounds().width
+                         - imageCycleMap.getIconWidth(), y, null);
+            }
+            else {
                 g.drawImage(imageOsmarender.getImage(), g.getClipBounds().width
                         - imageMapnik.getIconWidth(), y, null);
@@ -67,11 +74,16 @@
                 }
             } else if (x - imageMapnik.getIconWidth() < point.x && point.x < x) {
-                if (y < point.y && point.y < y + imageMapnik.getIconHeight() / 2) {
-                    isMapnik = false;
+                if (y < point.y && point.y < y + imageMapnik.getIconHeight() / 3) {
+                    currentMap = OSMARENDER;
                     return OSMARENDER;
-                } else if (y + imageMapnik.getIconHeight() / 2 < point.y
+                } else if (y + imageMapnik.getIconHeight() / 3 < point.y
+                        && point.y < y + imageMapnik.getIconHeight() *2/3) {
+                    currentMap = MAPNIK;
+                    return MAPNIK;
+                } else if (y + imageMapnik.getIconHeight()* 2/3 < point.y
                         && point.y < y + imageMapnik.getIconHeight()) {
-                    isMapnik = true;
-                    return MAPNIK;
+                    currentMap = CYCLEMAP;
+                    System.out.println("HIT Cycle");
+                    return CYCLEMAP;
                 }
             }
@@ -87,6 +99,12 @@
     }
     
-    public void setIsMapStyleMapnik (boolean style) {
-        isMapnik = style;
+    /**
+     * One of the constants OSMARENDER,MAPNIK or CYCLEMAP
+     */
+    public void setMapStyle (int style) {
+       if(style < 2 || style > 4){
+    	   currentMap = MAPNIK;
+       }
+       currentMap = style;
     }
 }
