diff --git a/examples/localized-openstreetmap.html b/examples/localized-openstreetmap.html
index 4cbfa2c000..7f4d64e0e8 100644
--- a/examples/localized-openstreetmap.html
+++ b/examples/localized-openstreetmap.html
@@ -32,11 +32,11 @@
Localized OpenStreetMap example
-
Example of a localized OpenStreetMap map with a custom tile server and a custom attribution.
+
Example of a localized OpenStreetMap map with a custom tile server and a custom attribution. The base layer is OpenCycleMap with an overlay from OpenSeaMap. The OpenSeaMap tile server does not support CORS headers.
-
localized-openstreetmap, openstreetmap
+
cors, localized-openstreetmap, openseamap, openstreetmap
diff --git a/examples/localized-openstreetmap.js b/examples/localized-openstreetmap.js
index a640c42e41..11857960d9 100644
--- a/examples/localized-openstreetmap.js
+++ b/examples/localized-openstreetmap.js
@@ -1,31 +1,52 @@
goog.require('ol.Attribution');
goog.require('ol.Map');
-goog.require('ol.RendererHints');
+goog.require('ol.RendererHint');
goog.require('ol.View2D');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
+// tiles.openseamap.org does not set CORS headers, so we have to disable
+// crossOrigin and we cannot use WebGL.
+
+var openCycleMapLayer = new ol.layer.Tile({
+ source: new ol.source.OSM({
+ attributions: [
+ new ol.Attribution({
+ html: 'All maps © ' +
+ '