Index: /applications/editors/josm/plugins/seachart/jicons/examples.xml
===================================================================
--- /applications/editors/josm/plugins/seachart/jicons/examples.xml	(revision 33948)
+++ /applications/editors/josm/plugins/seachart/jicons/examples.xml	(revision 33949)
@@ -23,5 +23,11 @@
     <tag k="seamark:type" v="light" />
     <tag k="seamark:light:category" v="floodlight" />
+  </icon>
+  <icon width="100" height="150" scale="0.5" file="beacon" format="PNG" >
+    <tag k="seamark:type" v="beacon_lateral" />
+    <tag k="seamark:beacon_lateral:shape" v="stake" />
+    <tag k="seamark:light:category" v="floodlight" />
     <tag k="seamark:topmark:shape" v="arrow" />
+    <tag k="seamark:topmark:status" v="illuminated" />
     <tag k="seamark:topmark:orientation" v="45" />
   </icon>
Index: /applications/editors/josm/plugins/seachart/src/render/Rules.java
===================================================================
--- /applications/editors/josm/plugins/seachart/src/render/Rules.java	(revision 33948)
+++ /applications/editors/josm/plugins/seachart/src/render/Rules.java	(revision 33949)
@@ -555,5 +555,4 @@
 			} else {
 				Renderer.symbol(Beacons.Shapes.get(shape), getScheme(feature.type));
-				AffineTransform tr = new AffineTransform(Topmarks.BeaconDelta.t);
 				if (feature.objs.containsKey(Obj.TOPMAR)) {
 					AttMap topmap = feature.objs.get(Obj.TOPMAR).get(0);
@@ -563,18 +562,12 @@
 					if (topmap.containsKey(Att.TOPSHP)) {
 						if (topmap.containsKey(Att.ORIENT)) {
-							tr.rotate(Math.toRadians((Double)topmap.get(Att.ORIENT).val));
+//							tr.rotate(Math.toRadians((Double)topmap.get(Att.ORIENT).val));
 						}
-						Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.TOPMAR), new Delta(Handle.BC, tr));
+						Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.TOPMAR), Topmarks.BeaconDelta);
 					}
 				} else if (feature.objs.containsKey(Obj.DAYMAR)) {
 					AttMap topmap = feature.objs.get(Obj.DAYMAR).get(0);
-					if (topmap.containsKey(Att.STATUS) && (testAttribute(Obj.DAYMAR, Att.STATUS, StsSTS.STS_ILLD))) {
-						Renderer.symbol(Beacons.Floodlight);
-					}
 					if (topmap.containsKey(Att.TOPSHP)) {
-						if (topmap.containsKey(Att.ORIENT)) {
-							tr.rotate(Math.toRadians((Double)topmap.get(Att.ORIENT).val));
-						}
-						Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.DAYMAR), new Delta(Handle.BC, tr));
+						Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.DAYMAR), Topmarks.BeaconDelta);
 					}
 				}
@@ -1006,5 +999,5 @@
 			if (Renderer.zoom >= 14) {
 				if (hasAttribute(Obj.LIGHTS, Att.CATLIT) && (testAttribute(Obj.LIGHTS, Att.CATLIT, CatLIT.LIT_FLDL))) {
-					Renderer.symbol(Beacons.Floodlight);
+					Renderer.symbol(Beacons.Floodlight, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180))));
 					Renderer.symbol(Harbours.SignalStation);
 				} else {
@@ -1018,5 +1011,4 @@
 		}
 		if (ok) {
-			AffineTransform tr = new AffineTransform();
 			if (feature.objs.containsKey(Obj.TOPMAR)) {
 				if (hasAttribute(Obj.TOPMAR, Att.STATUS) && (testAttribute(Obj.TOPMAR, Att.STATUS, StsSTS.STS_ILLD))) {
@@ -1025,21 +1017,10 @@
 				AttMap topmap = feature.objs.get(Obj.TOPMAR).get(0);
 				if (topmap.containsKey(Att.TOPSHP)) {
-					if (topmap.containsKey(Att.ORIENT)) {
-						tr.rotate(Math.toRadians((Double)topmap.get(Att.ORIENT).val));
-					}
-					tr.concatenate(Topmarks.LightDelta.t);
-					Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.TOPMAR), new Delta(Handle.BC, tr));
+					Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.TOPMAR), Topmarks.LightDelta);
 				}
 			} else if (feature.objs.containsKey(Obj.DAYMAR)) {
-				if (hasAttribute(Obj.DAYMAR, Att.STATUS) && (testAttribute(Obj.DAYMAR, Att.STATUS, StsSTS.STS_ILLD))) {
-					Renderer.symbol(Beacons.Floodlight);
-				}
 				AttMap topmap = feature.objs.get(Obj.DAYMAR).get(0);
 				if (topmap.containsKey(Att.TOPSHP)) {
-					if (topmap.containsKey(Att.ORIENT)) {
-						tr.rotate(Math.toRadians((Double)topmap.get(Att.ORIENT).val));
-					}
-					tr.concatenate(Topmarks.LightDelta.t);
-					Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.DAYMAR), new Delta(Handle.BC, tr));
+					Renderer.symbol(Topmarks.Shapes.get(((ArrayList<TopSHP>) (topmap.get(Att.TOPSHP).val)).get(0)), getScheme(Obj.DAYMAR), Topmarks.LightDelta);
 				}
 			}
Index: /applications/editors/josm/plugins/seachart/src/symbols/Beacons.java
===================================================================
--- /applications/editors/josm/plugins/seachart/src/symbols/Beacons.java	(revision 33948)
+++ /applications/editors/josm/plugins/seachart/src/symbols/Beacons.java	(revision 33949)
@@ -65,5 +65,5 @@
     public static final Symbol Floodlight = new Symbol();
     static {
-    	Floodlight.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -100, 100, 100)));
+    	Floodlight.add(new Instr(Form.BBOX, new Rectangle2D.Double(-50, -50, 100, 100)));
     	Floodlight.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     	Floodlight.add(new Instr(Form.FILL, new Color(0xffa000)));
Index: /applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java
===================================================================
--- /applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java	(revision 33948)
+++ /applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java	(revision 33949)
@@ -45,6 +45,5 @@
     	TopArrow.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
     	TopArrow.add(new Instr(Form.FILL, Color.black));
-      Path2D.Double p = new Path2D.Double(); p.moveTo(0, 0); p.lineTo(0, -25); p.lineTo(-10, -25); p.lineTo(-10, -43);
-      p.lineTo(0, -50); p.lineTo(10, -43); p.lineTo(10, -25); p.lineTo(0, -25);
+      Path2D.Double p = new Path2D.Double(); p.moveTo(0, 0); p.lineTo(0, -30); p.lineTo(-25, -30); p.lineTo(-30, -20); p.lineTo(-25, -10); p.lineTo(0, -10);
     	TopArrow.add(new Instr(Form.PLIN, p));
     }
