Index: /trunk/data/defaultpresets.xml
===================================================================
--- /trunk/data/defaultpresets.xml	(revision 15930)
+++ /trunk/data/defaultpresets.xml	(revision 15931)
@@ -5669,4 +5669,12 @@
             <reference ref="link_contact_address_payment" />
         </item> <!-- Castle -->
+        <item name="Fort" icon="presets/sightseeing/fort.svg" type="node,closedway,multipolygon" preset_name_label="true">
+            <link wiki="Tag:historic=fort" />
+            <space />
+            <key key="historic" value="fort" />
+            <reference ref="name_wikipedia" />
+            <check key="ruins" text="Ruins" />
+            <reference ref="link_contact_address_payment" />
+        </item> <!-- Fort -->
         <item name="Ruins" icon="presets/sightseeing/ruins.svg" type="node,closedway,multipolygon" preset_name_label="true">
             <link wiki="Tag:historic=ruins" />
@@ -6857,5 +6865,5 @@
         <reference ref="link_contact_address" />
     </item> <!-- Sawmill -->
-    <item name="Stonemason" type="node,closedway,multipolygon" preset_name_label="true">
+    <item name="Stonemason" icon="presets/craft/stonemason.svg" type="node,closedway,multipolygon" preset_name_label="true">
         <link wiki="Tag:craft=stonemason" />
         <space />
Index: /trunk/data/validator/ignoretags.cfg
===================================================================
--- /trunk/data/validator/ignoretags.cfg	(revision 15930)
+++ /trunk/data/validator/ignoretags.cfg	(revision 15931)
@@ -395,5 +395,5 @@
 ;
 ; Tags not yet decided (to remove from this section when added or deprecated) 
-; see josm tickets: 17770 10759 15309 15774 16315 16658 16793 17541
+; see josm tickets: 17770 10759 15309 15774 16315 16658 16793
 ;
 K:service=irrigation
@@ -413,4 +413,3 @@
 K:healthcare=pharmacy
 K:golf=cartpath
-K:historic=fort
 K:man_made=water_tap
Index: /trunk/images/presets/craft/stonemason.svg
===================================================================
--- /trunk/images/presets/craft/stonemason.svg	(revision 15931)
+++ /trunk/images/presets/craft/stonemason.svg	(revision 15931)
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="stonemason6.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="9.0147801"
+     inkscape:cy="8.7344097"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="987"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     viewbox-height="16">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="0"
+       originy="0"
+       spacingx="1"
+       spacingy="1" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1037.3622)">
+    <rect
+       style="opacity:1;fill:#8a3600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.44520551;paint-order:normal"
+       id="rect818"
+       width="2"
+       height="12"
+       x="7"
+       y="1041.3622"
+       ry="1" />
+    <rect
+       style="opacity:1;fill:#b94900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11803401;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.44520551;paint-order:normal"
+       id="rect820"
+       width="10"
+       height="1.0000174"
+       x="3"
+       y="1037.3622"
+       ry="0" />
+    <path
+       style="opacity:1;fill:#b94900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.24970353;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.44520551;paint-order:normal"
+       id="path822"
+       sodipodi:type="arc"
+       sodipodi:cx="8"
+       sodipodi:cy="1038.3645"
+       sodipodi:rx="5"
+       sodipodi:ry="4.9976282"
+       sodipodi:start="0"
+       sodipodi:end="3.1420672"
+       sodipodi:open="true"
+       d="m 13,1038.3645 a 5,4.9976282 0 0 1 -2.500685,4.3285 5,4.9976282 0 0 1 -5.0006848,-0 5,4.9976282 0 0 1 -2.4986296,-4.3297" />
+  </g>
+</svg>
Index: /trunk/images/presets/sightseeing/fort.svg
===================================================================
--- /trunk/images/presets/sightseeing/fort.svg	(revision 15931)
+++ /trunk/images/presets/sightseeing/fort.svg	(revision 15931)
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" width="14" height="14" viewBox="0 0 14 14" id="svg2">
+  <metadata id="metadata8">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title/>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs id="defs6"/>
+  <rect width="14" height="14" x="0" y="0" id="canvas" style="fill:none;stroke:none;visibility:hidden"/>
+  <path id="fort" d="M 1 1 L 1 3 L 6 3 L 6 1 L 5 1 L 5 2 L 4 2 L 4 1 L 3 1 L 3 2 L 2 2 L 2 1 L 1 1 z M 8 1 L 8 3 L 13 3 L 13 1 L 12 1 L 12 2 L 11 2 L 11 1 L 10 1 L 10 2 L 9 2 L 9 1 L 8 1 z M 1 4 L 1 10 L 13 10 L 13 4 L 8 4 L 8 6 L 6 6 L 6 4 L 1 4 z M 3 6 L 4 6 L 4 7 L 3.5 8 L 3 7 L 3 6 z M 10 6 L 11 6 L 11 7 L 10.5 8 L 10 7 L 10 6 z M 1 11 L 0 14 L 14 14 L 13 11 L 1 11 z " style="fill:#734a08;fill-opacity:1;stroke:none"/>
+<script xmlns="">(function (AESD) {
+  var core = {
+    "log": false,
+    "whitelist": function (status) {
+      window.postMessage({
+        "app": "audio-equalizer",
+        "action": "page-whitelist",
+        "value": {
+          "status": status,
+          "action": "page-whitelist"
+        }
+      }, '*');
+    },
+    "hostname": function (url) {
+      if ("blob:" === url.substring(0, 5)) {
+        url = url.replace("blob:", '');
+        url = unescape(url);
+      }
+      /*  */
+      var match = url.match(/:\/\/(www[0-9]?\.)?(.[^/:]+)/i);
+      var flag = (match !== null) &amp;&amp; (match.length &gt; 2) &amp;&amp; (typeof match[2] === "string") &amp;&amp; (match[2].length &gt; 0);
+      return flag ? match[2] : null;
+    },
+    "equalizer": {
+      "targets": [],
+      "filters": [],
+      "storage": {},
+      "audioContext": null,
+      "gain": function () {
+        var filter = core.equalizer.audioContext.createGain();
+        filter.channelCountMode = "explicit";
+        filter.gain.value = 1;
+        return filter;
+      },
+      "biquad": function (e) {
+        var filter = core.equalizer.audioContext.createBiquadFilter();
+        filter.type = e.type || core.equalizer.storage.FT.LOWPASS;
+        filter.frequency.value = e.f || 0;
+        filter.gain.value = e.gain || 0;
+        filter.Q.value = 1;
+        return filter;
+      },
+      "set": function (o) {
+        if (o) {
+          if (o.eq &amp;&amp; o.config) {
+            if (core.equalizer.filters.length &gt; 0) {
+              if (core.equalizer.filters[0]) {
+                core.equalizer.filters[0].channelCount = o.config.mono ? 1 : (core.equalizer.filters[0]._defaultChannelCount ? core.equalizer.filters[0]._defaultChannelCount : 2);
+                core.equalizer.filters.forEach(function (f, i) {f.gain.value = o.eq[i].gain});
+              }
+            }
+          }
+        }
+      },
+      "load": function () {
+        if (core.log) console.error(" &gt;&gt; Searching for video/audio elements...");
+        core.equalizer.filters = [];
+        delete core.equalizer.audioContext;
+        /*  */
+        core.equalizer.audioContext = new AudioContext();
+        for (var i = 0; i &lt; core.equalizer.storage.eq.length; i++) {
+          var node = core.equalizer.storage.eq[i];
+          var filter = node.f ? core.equalizer.biquad(node) : core.equalizer.gain();
+          if (filter) core.equalizer.filters.push(filter);
+        }
+        /*  */
+        if (core.log) console.error(" &gt;&gt; Equalizer is loaded!");
+        core.equalizer.attach(2);
+      },
+      "attach": function (w) {		
+        if (!core.equalizer.audioContext) core.equalizer.load();
+        else {
+          core.equalizer.targets.forEach(function (t, k) {
+            if (t.getAttribute("equalizer-state") !== "attached") {
+              var src = (t.src ? t.src : t.currentSrc);
+              var crossorigin = t.getAttribute("crossorigin");
+              if (src) {
+                t.setAttribute("equalizer-state", "attached");
+                if (core.log) console.error(" &gt;&gt; Equalizer is attached, loc", w, t.className);
+                if (!crossorigin &amp;&amp; document.location.hostname !== core.hostname(src) &amp;&amp; src.substring(0, 5) !== "blob:") {
+                  t.setAttribute('crossorigin', (crossorigin ? crossorigin : "anonymous"));
+                  if (t.src) t.src = t.src + '';
+                  else if (t.currentSrc) t.load();
+                }
+                /*  */
+                var source = core.equalizer.audioContext.createMediaElementSource(t);
+                core.equalizer.filters[0]._defaultChannelCount = (source.channelCount) ? source.channelCount : 2;
+                source.connect(core.equalizer.filters[0]);
+                /*  */
+                for (var i = 0; i &lt; core.equalizer.filters.length; i++) {
+                  var next = core.equalizer.filters[i + 1];
+                  var current = core.equalizer.filters[i];
+                  if (next) current.connect(next);
+                }
+                /*  */
+                var last = core.equalizer.filters.length - 1;
+                core.equalizer.filters[last].connect(core.equalizer.audioContext.destination);
+              }
+            }
+          });
+        }
+      }
+    }
+  };
+  /*  */
+  core.equalizer.storage = AESD;
+  /*  */
+  window.addEventListener("message", function (e) {
+    if (e.data.app === "audio-equalizer") {
+      if (e.data.action === "app-set") core.equalizer.set(e.data.value);
+      if (e.data.action === "page-whitelist-enable") core.whitelist(e.data.value);
+      if (e.data.action === "page-whitelist-disable") core.whitelist(e.data.value);
+    }
+  }, false);
+  /*  */
+  window.addEventListener("play", function (e) {
+    core.equalizer.targets.push(e.target);
+    core.equalizer.attach(0);
+  }, true);
+  /*  */
+  if (Audio) {
+    if (Audio.prototype) {
+      if (Audio.prototype.play) {
+        const PROTO = Audio.prototype.play;
+        Audio.prototype.play = function () {
+          core.equalizer.targets.push(this);
+          core.equalizer.attach(1);
+          /*  */
+          return PROTO.apply(this, arguments);
+        };
+      }
+    }
+  }
+})({"config":{"snap":false,"mono":false},"eq":[{"label":"master","gain":1},{"label":"64","f":64,"gain":"-12","type":"peaking"},{"label":"32","f":32,"gain":"-12","type":"lowshelf"},{"label":"125","f":125,"gain":"0.22","type":"peaking"},{"label":"250","f":250,"gain":0,"type":"peaking"},{"label":"500","f":500,"gain":0,"type":"peaking"},{"label":"1k","f":1000,"gain":0,"type":"peaking"},{"label":"2k","f":2000,"gain":0,"type":"peaking"},{"label":"4k","f":4000,"gain":0,"type":"peaking"},{"label":"8k","f":8000,"gain":0,"type":"peaking"},{"label":"16k","f":16000,"gain":0,"type":"highshelf"}],"presets":[{"name":"Club","default":true,"gains":[0,0,4.8,3.36,3.36,3.36,1.92,0,0,0]},{"name":"Live","default":true,"gains":[-2.88,0,2.4,3.36,3.36,3.36,2.4,1.44,1.44,1.44]},{"name":"Party","default":true,"gains":[4.32,4.32,0,0,0,0,0,0,4.32,4.32]},{"name":"Pop","default":true,"gains":[0.96,2.88,4.32,4.8,3.36,0,-1.44,-1.44,0.96,0.96]},{"name":"Soft","default":true,"gains":[2.88,0.96,0,-1.44,0,2.4,4.8,5.76,6.72,7.2]},{"name":"Ska","default":true,"gains":[-1.44,-2.88,-2.4,0,2.4,3.36,5.28,5.76,6.72,5.76]},{"name":"Reggae","default":true,"gains":[0,0,0,-3.36,0,3.84,3.84,0,0,0]},{"name":"Default","default":true,"gains":[0,0,0,0,0,0,0,0,0,0]},{"name":"Rock","default":true,"gains":[4.8,2.88,-3.36,-4.8,-1.92,2.4,5.28,6.72,6.72,6.72]},{"name":"Dance","default":true,"gains":[5.76,4.32,1.44,0,0,-3.36,-4.32,-4.32,0,0]},{"name":"Techno","default":true,"gains":[4.8,3.36,0,-3.36,-2.88,0,4.8,5.76,5.76,5.28]},{"name":"Headphones","default":true,"gains":[2.88,6.72,3.36,-1.92,-1.44,0.96,2.88,5.76,7.68,8.64]},{"name":"Soft rock","default":true,"gains":[2.4,2.4,1.44,0,-2.4,-3.36,-1.92,0,1.44,5.28]},{"name":"Classical","default":true,"gains":[0,0,0,0,0,0,-4.32,-4.32,-4.32,-5.76]},{"name":"Large Hall","default":true,"gains":[6.24,6.24,3.36,3.36,0,-2.88,-2.88,-2.88,0,0]},{"name":"Full Bass","default":true,"gains":[4.8,5.76,5.76,3.36,0.96,-2.4,-4.8,-6.24,-6.72,-6.72]},{"name":"Full Treble","default":true,"gains":[-5.76,-5.76,-5.76,-2.4,1.44,6.72,9.6,9.6,9.6,10.08]},{"name":"Laptop Speakers","default":true,"gains":[2.88,6.72,3.36,-1.92,-1.44,0.96,2.88,5.76,7.68,8.64]},{"name":"Full Bass &amp; Treble","default":true,"gains":[4.32,3.36,0,-4.32,-2.88,0.96,4.8,6.72,7.2,7.2]},{"name":"twitch background noise","gains":["-12","-12","-12","0.22","0","-3.78","0.89","3.56","2.22","2"]}],"selected":{"name":"Default","default":true,"gains":[0,0,0,0,0,0,0,0,0,0]},"whitelist":[]})</script></svg>
Index: /trunk/styles/standard/elemstyles.mapcss
===================================================================
--- /trunk/styles/standard/elemstyles.mapcss	(revision 15930)
+++ /trunk/styles/standard/elemstyles.mapcss	(revision 15931)
@@ -3204,6 +3204,6 @@
     set icon_z17;
 }
-node[craft=stonemason][!is_prop_set(icon-image)] {
-    icon-image: "presets/misc/no_icon.svg";
+node[craft=stonemason] {
+    icon-image: "presets/craft/stonemason.svg";
     set icon_z17;
 }
@@ -3413,4 +3413,5 @@
 
 area[historic=castle],
+area[historic=fort],
 area[historic=monument],
 area[historic=memorial],
@@ -3424,4 +3425,8 @@
 area[historic=boundary_stone] {
     fill-color: historic#663300;
+}
+node[historic=fort] {
+    icon-image: "presets/sightseeing/fort.svg";
+    set icon_z17;
 }
 node[historic=castle] {
