Index: applications/editors/josm/plugins/seachart/src/render/Rules.java
===================================================================
--- applications/editors/josm/plugins/seachart/src/render/Rules.java	(revision 33955)
+++ applications/editors/josm/plugins/seachart/src/render/Rules.java	(revision 33956)
@@ -527,5 +527,9 @@
 	@SuppressWarnings("unchecked")
 	private static void beacons() {
-		if ((Renderer.zoom >= 14) || ((Renderer.zoom >= 12) && ((feature.type == Obj.BCNLAT) || (feature.type == Obj.BCNCAR))) || ((Renderer.zoom >= 11) && ((feature.type == Obj.BCNSAW) || hasObject(Obj.RTPBCN)))) {
+		if ((Renderer.zoom >= 14) || ((Renderer.zoom >= 12) && ((feature.type == Obj.BCNLAT) || (feature.type == Obj.BCNCAR)))
+				|| ((Renderer.zoom >= 11) && ((feature.type == Obj.BCNSAW) || hasObject(Obj.RTPBCN)))) {
+			if (testAttribute(feature.type, Att.STATUS, StsSTS.STS_ILLD)) {
+				Renderer.symbol(Beacons.Floodlight);
+			}
 			BcnSHP shape = (BcnSHP) getAttEnum(feature.type, Att.BCNSHP);
 			if (shape == BcnSHP.BCN_UNKN)
@@ -557,11 +561,8 @@
 				if (feature.objs.containsKey(Obj.TOPMAR)) {
 					AttMap topmap = feature.objs.get(Obj.TOPMAR).get(0);
-					if (topmap.containsKey(Att.STATUS) && (testAttribute(Obj.TOPMAR, Att.STATUS, StsSTS.STS_ILLD))) {
+					if (testAttribute(Obj.TOPMAR, 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.TOPMAR), Topmarks.BeaconDelta);
 					}
@@ -873,5 +874,5 @@
 		case BUISGL:
 			if (Renderer.zoom >= 16) {
-				if (hasAttribute(Obj.BUISGL, Att.STATUS) && (testAttribute(Obj.BUISGL, Att.STATUS, StsSTS.STS_ILLD))) {
+				if (testAttribute(Obj.BUISGL, Att.STATUS, StsSTS.STS_ILLD)) {
 					Renderer.symbol(Beacons.Floodlight);
 				}
@@ -956,5 +957,5 @@
 			switch (feature.type) {
 			case LNDMRK:
-				if (hasAttribute(Obj.LNDMRK, Att.STATUS) && (testAttribute(Obj.LNDMRK, Att.STATUS, StsSTS.STS_ILLD))) {
+				if (testAttribute(Obj.LNDMRK, Att.STATUS, StsSTS.STS_ILLD)) {
 					Renderer.symbol(Beacons.Floodlight);
 				}
@@ -998,5 +999,5 @@
 		case PILPNT:
 			if (Renderer.zoom >= 14) {
-				if (hasAttribute(Obj.LIGHTS, Att.CATLIT) && (testAttribute(Obj.LIGHTS, Att.CATLIT, CatLIT.LIT_FLDL))) {
+				if (testAttribute(Obj.LIGHTS, Att.CATLIT, CatLIT.LIT_FLDL)) {
 					Renderer.symbol(Beacons.Floodlight, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(180))));
 					Renderer.symbol(Harbours.SignalStation);
@@ -1012,5 +1013,5 @@
 		if (ok) {
 			if (feature.objs.containsKey(Obj.TOPMAR)) {
-				if (hasAttribute(Obj.TOPMAR, Att.STATUS) && (testAttribute(Obj.TOPMAR, Att.STATUS, StsSTS.STS_ILLD))) {
+				if (testAttribute(Obj.TOPMAR, Att.STATUS, StsSTS.STS_ILLD)) {
 					Renderer.symbol(Beacons.Floodlight);
 				}
@@ -1216,4 +1217,7 @@
 		else
 			Renderer.symbol(Landmarks.Platform);
+		if (testAttribute(feature.type, Att.STATUS, StsSTS.STS_ILLD)) {
+			Renderer.symbol(Beacons.Floodlight);
+		}
 		addName(15, new Font("Arial", Font.BOLD, 40), new Delta(Handle.BL, AffineTransform.getTranslateInstance(20, -50)));
 		Signals.addSignals();
@@ -1235,4 +1239,7 @@
 		default:
 			if (Renderer.zoom >= 14) {
+				if (testAttribute(feature.type, Att.STATUS, StsSTS.STS_ILLD)) {
+					Renderer.symbol(Beacons.Floodlight);
+				}
 				if (feature.objs.containsKey(Obj.LIGHTS))
 					lights();
Index: applications/editors/josm/plugins/seachart/src/render/Signals.java
===================================================================
--- applications/editors/josm/plugins/seachart/src/render/Signals.java	(revision 33955)
+++ applications/editors/josm/plugins/seachart/src/render/Signals.java	(revision 33956)
@@ -377,4 +377,6 @@
     @SuppressWarnings("unchecked")
     public static void lights() {
+      if ((hasAttribute(Obj.LIGHTS, Att.CATLIT) && (testAttribute(Obj.LIGHTS, Att.CATLIT, CatLIT.LIT_FLDL))))
+      	return;
         Enum<ColCOL> col = null;
         Enum<ColCOL> tcol = null;
@@ -397,8 +399,6 @@
             }
         }
-        if (!(hasAttribute(Obj.LIGHTS, Att.CATLIT) && (testAttribute(Obj.LIGHTS, Att.CATLIT, CatLIT.LIT_FLDL)))) {
-        	Renderer.symbol(Beacons.LightFlare, new Scheme(LightColours.get(col)),
-                new Delta(Handle.BC, AffineTransform.getRotateInstance(Math.toRadians(120))));
-        }
+        Renderer.symbol(Beacons.LightFlare, new Scheme(LightColours.get(col)),
+        		new Delta(Handle.BC, AffineTransform.getRotateInstance(Math.toRadians(120))));
         if (Renderer.zoom >= 12) {
             String str = "";
@@ -698,2 +698,3 @@
     }
 }
+
Index: applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java
===================================================================
--- applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java	(revision 33955)
+++ applications/editors/josm/plugins/seachart/src/symbols/Topmarks.java	(revision 33956)
@@ -42,8 +42,8 @@
     public static final Symbol TopArrow = new Symbol();
     static {
-    	TopArrow.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20, -80, 40, 80)));
+    	TopArrow.add(new Instr(Form.BBOX, new Rectangle2D.Double(-40, -80, 80, 80)));
     	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, -30); p.lineTo(-25, -30); p.lineTo(-30, -20); p.lineTo(-25, -10); p.lineTo(0, -10);
+      Path2D.Double p = new Path2D.Double(); p.moveTo(0, 0); p.lineTo(0, -30); p.lineTo(-20, -30); p.lineTo(-30, -20); p.lineTo(-20, -10); p.lineTo(0, -10);
     	TopArrow.add(new Instr(Form.PLIN, p));
     }
