Index: applications/editors/josm/plugins/smed2/src/seamap/Renderer.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/seamap/Renderer.java	(revision 30022)
+++ applications/editors/josm/plugins/smed2/src/seamap/Renderer.java	(revision 30023)
@@ -304,5 +304,5 @@
 		label.add(new Instr(Prim.TEXT, new Caption(str, font, colour, (delta == null) ? new Delta(Handle.CC, null) : delta)));
 		Point2D point = helper.getPoint(feature.centre);
-		Symbols.drawSymbol(g2, label, tScale, point.getX(), point.getY(), null, null);
+		Symbols.drawSymbol(g2, label, sScale, point.getX(), point.getY(), null, null);
 	}
 
Index: applications/editors/josm/plugins/smed2/src/seamap/Rules.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/seamap/Rules.java	(revision 30022)
+++ applications/editors/josm/plugins/smed2/src/seamap/Rules.java	(revision 30023)
@@ -318,6 +318,40 @@
 				}
 				if ((zoom >= 15) && ((name) != null)) {
-					Renderer.labelText(feature, (String) name.val, new Font("Arial", Font.BOLD, 80), new Color(0xc480ff), new Delta(Handle.BC, AffineTransform.getTranslateInstance(160, 0)));
+					Renderer.labelText(feature, (String) name.val, new Font("Arial", Font.BOLD, 60), new Color(0xc480ff), new Delta(Handle.LC, AffineTransform.getTranslateInstance(70, 0)));
 				}
+				ArrayList<StsSTS> sts = (ArrayList<StsSTS>)Renderer.getAttVal(feature, Obj.ACHARE, 0, Att.STATUS);
+				if ((zoom >= 15) && (sts != null) && (sts.contains(StsSTS.STS_RESV))) {
+					Renderer.labelText(feature, "Reserved", new Font("Arial", Font.BOLD, 50), new Color(0xc480ff), new Delta(Handle.TC, AffineTransform.getTranslateInstance(0, 60)));
+				}
+			}
+			ArrayList<CatACH> cats = (ArrayList<CatACH>)Renderer.getAttVal(feature, Obj.ACHARE, 0, Att.CATACH);
+			int dy = (cats.size() - 1) * -30;
+			for (CatACH cat : cats) {
+				switch (cat) {
+				case ACH_DEEP:
+					Renderer.labelText(feature, "DW", new Font("Arial", Font.BOLD, 50), new Color(0xc480ff), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					dy += 60;
+					break;
+				case ACH_TANK:
+					Renderer.labelText(feature, "Tanker", new Font("Arial", Font.BOLD, 50), new Color(0xc480ff), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					dy += 60;
+					break;
+				case ACH_H24P:
+					Renderer.labelText(feature, "24h", new Font("Arial", Font.BOLD, 50), new Color(0xc480ff), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					dy += 60;
+					break;
+				case ACH_EXPL:
+					Renderer.symbol(feature, Harbours.Explosives, null, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)), new Scheme(new Color(0xc480ff)));
+					dy += 60;
+					break;
+				case ACH_QUAR:
+					Renderer.symbol(feature, Harbours.Hospital, null, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)), new Scheme(new Color(0xc480ff)));
+					dy += 60;
+					break;
+				case ACH_SEAP:
+					Renderer.symbol(feature, Areas.Seaplane, null, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)), new Scheme(new Color(0xc480ff)));
+					dy += 60;
+					break;
+				}
 			}
 			break;
@@ -325,10 +359,4 @@
 	}
 /*
-	 *   if ((zoom >= 12) && is_type("anchorage")) {
-    symbol("anchorage");
-    if ((zoom >= 15) && (has_item_attribute("name")))
-      text(item_attribute("name"), "font-family:Arial; font-weight:bold; font-size:80; text-anchor:middle", 0, -90);
-    if ((zoom >= 12) && (is_area)) line_symbols("restricted_line", 0.5, "line_anchor", 10);
-  }
   if ((zoom >= 16) && is_type("anchor_berth")) symbol("anchor_berth");
   if ((zoom >= 12) && is_type("harbour")) {
Index: applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java	(revision 30022)
+++ applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java	(revision 30023)
@@ -184,26 +184,28 @@
 		showFrame.setVisible(false);
 		panelMain.clearMark();
-		for (OsmPrimitive osm : selection) {
-			nextFeature = osm;
-			if (selection.size() == 1) {
-				if (nextFeature.compareTo(feature) != 0) {
-					feature = nextFeature;
-					Feature id = map.index.get(feature.getUniqueId());
-					if (id != null) {
-						panelMain.parseMark(id);
-						showFrame.setVisible(true);
-						showFrame.showFeature(feature, map);
+		if (map != null) {
+			for (OsmPrimitive osm : selection) {
+				nextFeature = osm;
+				if (selection.size() == 1) {
+					if (nextFeature.compareTo(feature) != 0) {
+						feature = nextFeature;
+						Feature id = map.index.get(feature.getUniqueId());
+						if (id != null) {
+							panelMain.parseMark(id);
+							showFrame.setVisible(true);
+							showFrame.showFeature(feature, map);
+						}
 					}
-				}
-			} else {
+				} else {
+					showFrame.setVisible(false);
+					PanelMain.messageBar.setText(tr("Select only one feature"));
+				}
+			}
+			if (nextFeature == null) {
+				feature = null;
+				panelMain.clearMark();
 				showFrame.setVisible(false);
-				PanelMain.messageBar.setText(tr("Select only one feature"));
-			}
-		}
-		if (nextFeature == null) {
-			feature = null;
-			panelMain.clearMark();
-			showFrame.setVisible(false);
-			PanelMain.messageBar.setText(tr("Select a map feature"));
+				PanelMain.messageBar.setText(tr("Select a map feature"));
+			}
 		}
 	}
Index: applications/editors/josm/plugins/smed2/src/symbols/Areas.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/symbols/Areas.java	(revision 30022)
+++ applications/editors/josm/plugins/smed2/src/symbols/Areas.java	(revision 30023)
@@ -20,5 +20,4 @@
 	static {
 		Plane.add(new Instr(Prim.BBOX, new Rectangle(-60,-60,120,120)));
-		Plane.add(new Instr(Prim.FILL, new Color(0xa30075)));
 		Path2D.Double p = new Path2D.Double(); p.moveTo(40,20); p.lineTo(50,10); p.lineTo(27.0,13.3); p.lineTo(23.7,6.8); p.lineTo(40.0,5.0); p.curveTo(55,4,55,-9,40,-10);
 		p.quadTo(31,-11,30,-15); p.lineTo(-30,2); p.quadTo(-35,-12,-45,-15); p.quadTo(-56,-3,-50,15); p.lineTo(18.4,7.3); p.lineTo(21.7,14); p.lineTo(-20,20); p.closePath();
@@ -126,7 +125,7 @@
 	public static final Symbol Seaplane = new Symbol();
 	static {
+		Seaplane.add(new Instr(Prim.BBOX, new Rectangle(-60,-60,120,120)));
 		Seaplane.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
-		Seaplane.add(new Instr(Prim.FILL, new Color(0xa30075)));
-		Seaplane.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-60,-60,120,120)));
+		Seaplane.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-58,-58,116,116)));
 		Seaplane.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Areas.Plane, 1.0, 0, 0, null, null)));
 	}
Index: applications/editors/josm/plugins/smed2/src/symbols/Harbours.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/symbols/Harbours.java	(revision 30022)
+++ applications/editors/josm/plugins/smed2/src/symbols/Harbours.java	(revision 30023)
@@ -108,5 +108,4 @@
 	static {
 		Explosives.add(new Instr(Prim.BBOX, new Rectangle(-30,-30,60,60)));
-		Explosives.add(new Instr(Prim.FILL, new Color(0xa30075)));
 		Explosives.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-5,25,10,10)));
 		Explosives.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
