Index: applications/editors/josm/plugins/smed2/build.xml
===================================================================
--- applications/editors/josm/plugins/smed2/build.xml	(revision 30156)
+++ applications/editors/josm/plugins/smed2/build.xml	(revision 30157)
@@ -39,5 +39,5 @@
     <!-- this is the directory where the plugin jar is copied to -->
     <property name="plugin.dist.dir" value="../../dist"/>
-    <property name="ant.build.javac.target" value="1.6"/>
+    <property name="ant.build.javac.target" value="1.7"/>
     <property name="plugin.dist.dir" value="../../dist"/>
     <property name="plugin.jar" value="${plugin.dist.dir}/${ant.project.name}.jar"/>
Index: applications/editors/josm/plugins/smed2/src/render/Renderer.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/render/Renderer.java	(revision 30156)
+++ applications/editors/josm/plugins/smed2/src/render/Renderer.java	(revision 30157)
@@ -388,14 +388,20 @@
 	}
 
-	public static void labelText(Feature feature, String str, Font font, LabelStyle style, Color fg) {
-		labelText(feature, str, font, style, fg, null, null);
-	}
-	public static void labelText(Feature feature, String str, Font font, LabelStyle style, Color fg, Color bg) {
-		labelText(feature, str, font, style, fg, bg, null);
-	}
-	public static void labelText(Feature feature, String str, Font font, LabelStyle style, Color fg, Delta delta) {
-		labelText(feature, str, font, style, fg, null, delta);
-	}
-	public static void labelText(Feature feature, String str, Font font, LabelStyle style, Color fg, Color bg, Delta delta) {
+	public static void labelText(Feature feature, String str, Font font, Color tc) {
+		labelText(feature, str, font, tc, LabelStyle.NONE, null, null, null);
+	}
+	public static void labelText(Feature feature, String str, Font font, Color tc, Delta delta) {
+		labelText(feature, str, font, tc, LabelStyle.NONE, null, null, delta);
+	}
+	public static void labelText(Feature feature, String str, Font font, Color tc, LabelStyle style, Color fg) {
+		labelText(feature, str, font, tc, style, fg, null, null);
+	}
+	public static void labelText(Feature feature, String str, Font font, Color tc, LabelStyle style, Color fg, Color bg) {
+		labelText(feature, str, font, tc, style, fg, bg, null);
+	}
+	public static void labelText(Feature feature, String str, Font font, Color tc, LabelStyle style, Color fg, Delta delta) {
+		labelText(feature, str, font, tc, style, fg, null, delta);
+	}
+	public static void labelText(Feature feature, String str, Font font, Color tc, LabelStyle style, Color fg, Color bg, Delta delta) {
 		if (delta == null) delta = new Delta(Handle.CC);
 		if (bg == null) bg = new Color(0x00000000, true);
@@ -491,5 +497,5 @@
 			break;
 		}
-		label.add(new Instr(Prim.TEXT, new Caption(str, font, fg, new Delta(Handle.TL, AffineTransform.getTranslateInstance(tx, ty)))));
+		label.add(new Instr(Prim.TEXT, new Caption(str, font, tc, new Delta(Handle.TL, AffineTransform.getTranslateInstance(tx, ty)))));
 		Point2D point = context.getPoint(feature.centre);
 		Symbols.drawSymbol(g2, label, sScale, point.getX(), point.getY(), null, delta);
Index: applications/editors/josm/plugins/smed2/src/render/Rules.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/render/Rules.java	(revision 30156)
+++ applications/editors/josm/plugins/smed2/src/render/Rules.java	(revision 30157)
@@ -190,5 +190,5 @@
 				Renderer.lineVector(feature, new LineStyle(Color.black, 8, new float[] { 25, 25 }));
 			if ((Renderer.zoom >= 12) && (name != null))
-				Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 100), LabelStyle.NONE, Color.black);
+				Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 100), Color.black);
 			break;
 		case FAIRWY:
@@ -218,5 +218,5 @@
 				Renderer.lineVector(feature, new LineStyle(Color.black, 20, new float[] { 40, 40 }));
 				if ((Renderer.zoom >= 15) && (name != null))
-					Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 80), LabelStyle.NONE, Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0, 10)));
+					Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 80), Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0, 10)));
 			}
 			break;
@@ -236,5 +236,5 @@
 						Renderer.lineText(feature, name, new Font("Arial", Font.PLAIN, 150), Color.black, 0.5, -40);
 					} else {
-						Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 150), LabelStyle.NONE, Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
+						Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 150), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
 					}
 				break;
@@ -244,5 +244,5 @@
 						Renderer.lineText(feature, name, new Font("Arial", Font.PLAIN, 150), Color.black, 0.5, -40);
 					} else {
-						Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 150), LabelStyle.NONE, Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
+						Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 150), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
 					}
 				break;
@@ -252,6 +252,6 @@
 						Renderer.lineVector(feature, new LineStyle(new Color(0xc480ff), 4, new float[] { 25, 25 }));
 						if (name != null) {
-							Renderer.labelText(feature, name, new Font("Arial", Font.ITALIC, 75), LabelStyle.NONE, Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
-							Renderer.labelText(feature, "(Shoal)", new Font("Arial", Font.PLAIN, 60), LabelStyle.NONE, Color.black, new Delta(Handle.BC));
+							Renderer.labelText(feature, name, new Font("Arial", Font.ITALIC, 75), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
+							Renderer.labelText(feature, "(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, new Delta(Handle.BC));
 						}
 					} else if (feature.flag == Fflag.LINE) {
@@ -262,6 +262,6 @@
 					} else {
 						if (name != null) {
-							Renderer.labelText(feature, name, new Font("Arial", Font.ITALIC, 75), LabelStyle.NONE, Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
-							Renderer.labelText(feature, "(Shoal)", new Font("Arial", Font.PLAIN, 60), LabelStyle.NONE, Color.black, new Delta(Handle.BC));
+							Renderer.labelText(feature, name, new Font("Arial", Font.ITALIC, 75), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -40)));
+							Renderer.labelText(feature, "(Shoal)", new Font("Arial", Font.PLAIN, 60), Color.black, new Delta(Handle.BC));
 						}
 					}
@@ -271,5 +271,5 @@
 			case SEA_NRRW:
 				if ((Renderer.zoom >= 12) && (name != null))
-					Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 100), LabelStyle.NONE, Color.black);
+					Renderer.labelText(feature, name, new Font("Arial", Font.PLAIN, 100), Color.black);
 				break;
 			default:
@@ -286,5 +286,5 @@
 			}
 			if ((Renderer.zoom >= 15) && (name != null))
-				Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 80), LabelStyle.NONE, Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -90)));
+				Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 80), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, -90)));
 			break;
 		default:
@@ -294,38 +294,53 @@
 	
 	private static void beacons(Feature feature) {
-		BcnSHP shape = (BcnSHP) getAttVal(feature, feature.type, 0, Att.BCNSHP);
-		if (((shape == BcnSHP.BCN_PRCH) || (shape == BcnSHP.BCN_WTHY)) && (feature.type == Obj.BCNLAT)) {
-			CatLAM cat = (CatLAM) getAttVal(feature, feature.type, 0, Att.CATLAM);
-			switch (cat) {
-			case LAM_PORT:
-				if (shape == BcnSHP.BCN_PRCH)
-					Renderer.symbol(feature, Beacons.PerchPort);
-				else
-					Renderer.symbol(feature, Beacons.WithyPort);
-				break;
-			case LAM_STBD:
-				if (shape == BcnSHP.BCN_PRCH)
-					Renderer.symbol(feature, Beacons.PerchStarboard);
-				else
-					Renderer.symbol(feature, Beacons.WithyStarboard);
-				break;
-			default:
-				Renderer.symbol(feature, Beacons.Stake, getScheme(feature, feature.type));
-			}
-		} else {
-			Renderer.symbol(feature, Beacons.Shapes.get(shape), getScheme(feature, feature.type));
-			if (feature.objs.get(Obj.TOPMAR) != null)
-				Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), getScheme(feature, Obj.TOPMAR), Topmarks.BeaconDelta);
-		}
-		Signals.addSignals(feature);
+		if ((Renderer.zoom >= 14) || ((Renderer.zoom >= 12) && ((feature.type == Obj.BCNLAT) || (feature.type == Obj.BCNCAR)))) {
+			BcnSHP shape = (BcnSHP) getAttVal(feature, feature.type, 0,
+					Att.BCNSHP);
+			if (((shape == BcnSHP.BCN_PRCH) || (shape == BcnSHP.BCN_WTHY))
+					&& (feature.type == Obj.BCNLAT)) {
+				CatLAM cat = (CatLAM) getAttVal(feature, feature.type, 0,
+						Att.CATLAM);
+				switch (cat) {
+				case LAM_PORT:
+					if (shape == BcnSHP.BCN_PRCH)
+						Renderer.symbol(feature, Beacons.PerchPort);
+					else
+						Renderer.symbol(feature, Beacons.WithyPort);
+					break;
+				case LAM_STBD:
+					if (shape == BcnSHP.BCN_PRCH)
+						Renderer.symbol(feature, Beacons.PerchStarboard);
+					else
+						Renderer.symbol(feature, Beacons.WithyStarboard);
+					break;
+				default:
+					Renderer.symbol(feature, Beacons.Stake,
+							getScheme(feature, feature.type));
+				}
+			} else {
+				Renderer.symbol(feature, Beacons.Shapes.get(shape),
+						getScheme(feature, feature.type));
+				if (feature.objs.get(Obj.TOPMAR) != null)
+					Renderer.symbol(
+							feature,
+							Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR)
+									.get(0).get(Att.TOPSHP).val),
+							getScheme(feature, Obj.TOPMAR),
+							Topmarks.BeaconDelta);
+			}
+			Signals.addSignals(feature);
+		}
 	}
 	
 	private static void buoys(Feature feature) {
-		BoySHP shape = (BoySHP) getAttVal(feature, feature.type, 0, Att.BOYSHP);
-		Renderer.symbol(feature, Buoys.Shapes.get(shape), getScheme(feature, feature.type));
-		if (hasObject(feature, Obj.TOPMAR)) {
-			Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), getScheme(feature, Obj.TOPMAR), Topmarks.BuoyDeltas.get(shape));
-		}
-		Signals.addSignals(feature);
+		if ((Renderer.zoom >= 14) || ((Renderer.zoom >= 12) && ((feature.type == Obj.BOYLAT) || (feature.type == Obj.BOYCAR)))) {
+			BoySHP shape = (BoySHP) getAttVal(feature, feature.type, 0, Att.BOYSHP);
+			Renderer.symbol(feature, Buoys.Shapes.get(shape), getScheme(feature, feature.type));
+			if (hasObject(feature, Obj.TOPMAR)) {
+				Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val),
+						getScheme(feature, Obj.TOPMAR), Topmarks.BuoyDeltas.get(shape));
+			}
+			Signals.addSignals(feature);
+		}
 	}
 	
@@ -358,10 +373,10 @@
 				}
 				if (hstr.isEmpty() && !vstr.isEmpty()) {
-					Renderer.labelText(feature, vstr, new Font("Arial", Font.PLAIN, 30), LabelStyle.VCLR, Color.black, Color.white, new Delta(Handle.CC));
+					Renderer.labelText(feature, vstr, new Font("Arial", Font.PLAIN, 30), Color.black, LabelStyle.VCLR, Color.black, Color.white, new Delta(Handle.CC));
 				} else if (!hstr.isEmpty() && !vstr.isEmpty()) {
-					Renderer.labelText(feature, vstr, new Font("Arial", Font.PLAIN, 30), LabelStyle.VCLR, Color.black, Color.white, new Delta(Handle.BC));
-					Renderer.labelText(feature, hstr, new Font("Arial", Font.PLAIN, 30), LabelStyle.HCLR, Color.black, Color.white, new Delta(Handle.TC));
+					Renderer.labelText(feature, vstr, new Font("Arial", Font.PLAIN, 30), Color.black, LabelStyle.VCLR, Color.black, Color.white, new Delta(Handle.BC));
+					Renderer.labelText(feature, hstr, new Font("Arial", Font.PLAIN, 30), Color.black, LabelStyle.HCLR, Color.black, Color.white, new Delta(Handle.TC));
 				} else if (!hstr.isEmpty() && vstr.isEmpty()) {
-					Renderer.labelText(feature, hstr, new Font("Arial", Font.PLAIN, 30), LabelStyle.HCLR, Color.black, Color.white, new Delta(Handle.CC));
+					Renderer.labelText(feature, hstr, new Font("Arial", Font.PLAIN, 30), Color.black, LabelStyle.HCLR, Color.black, Color.white, new Delta(Handle.CC));
 				}
 			}
@@ -382,7 +397,7 @@
 				if (atts != null) {
 					if (atts.containsKey(Att.VERCLR)) {
-						Renderer.labelText(feature, String.valueOf((Double) atts.get(Att.VERCLR).val), new Font("Arial", Font.PLAIN, 50), LabelStyle.VCLR, Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0,25)));
+						Renderer.labelText(feature, String.valueOf((Double) atts.get(Att.VERCLR).val), new Font("Arial", Font.PLAIN, 50), Color.black, LabelStyle.VCLR, Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0,25)));
 					} else if (atts.containsKey(Att.VERCSA)) {
-						Renderer.labelText(feature, String.valueOf((Double) atts.get(Att.VERCSA).val), new Font("Arial", Font.PLAIN, 50), LabelStyle.PCLR, Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0,25)));
+						Renderer.labelText(feature, String.valueOf((Double) atts.get(Att.VERCSA).val), new Font("Arial", Font.PLAIN, 50), Color.black, LabelStyle.PCLR, Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0,25)));
 					}
 				}
@@ -427,5 +442,5 @@
 				}
 				str += String.format("%1.0f", dist);
-				Renderer.labelText(feature, str, new Font("Arial", Font.PLAIN, 40), LabelStyle.NONE, Color.black, null, new Delta(Handle.CC, AffineTransform.getTranslateInstance(0, 45)));
+				Renderer.labelText(feature, str, new Font("Arial", Font.PLAIN, 40), Color.black, new Delta(Handle.CC, AffineTransform.getTranslateInstance(0, 45)));
 			}
 		}
@@ -464,5 +479,5 @@
 			if (Renderer.zoom >= 14) {
 				Renderer.symbol(feature, Harbours.Anchorage, new Scheme(Mline));
-			Renderer.labelText(feature, name == null ? "" : name, new Font("Arial", Font.PLAIN, 30), LabelStyle.RRCT, Mline, Color.white, new Delta(Handle.BC));
+			Renderer.labelText(feature, name == null ? "" : name, new Font("Arial", Font.PLAIN, 30), Msymb, LabelStyle.RRCT, Mline, Color.white, new Delta(Handle.BC));
 			}
 			double radius = (Double)getAttVal(feature, Obj.ACHBRT, 0, Att.RADIUS);
@@ -481,9 +496,9 @@
 				}
 				if ((Renderer.zoom >= 15) && ((name) != null)) {
-					Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 60), LabelStyle.NONE, Mline, null, new Delta(Handle.LC, AffineTransform.getTranslateInstance(70, 0)));
+					Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 60), Mline, new Delta(Handle.LC, AffineTransform.getTranslateInstance(70, 0)));
 				}
 				ArrayList<StsSTS> sts = (ArrayList<StsSTS>)getAttVal(feature, Obj.ACHARE, 0, Att.STATUS);
 				if ((Renderer.zoom >= 15) && (sts != null) && (sts.contains(StsSTS.STS_RESV))) {
-					Renderer.labelText(feature, "Reserved", new Font("Arial", Font.PLAIN, 50), LabelStyle.NONE, Mline, null, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0, 60)));
+					Renderer.labelText(feature, "Reserved", new Font("Arial", Font.PLAIN, 50), Mline, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0, 60)));
 				}
 			}
@@ -493,27 +508,28 @@
 				switch (cat) {
 				case ACH_DEEP:
-					Renderer.labelText(feature, "DW", new Font("Arial", Font.BOLD, 50), LabelStyle.NONE, Mline, null, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					Renderer.labelText(feature, "DW", new Font("Arial", Font.BOLD, 50), Msymb, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
 					dy += 60;
 					break;
 				case ACH_TANK:
-					Renderer.labelText(feature, "Tanker", new Font("Arial", Font.BOLD, 50), LabelStyle.NONE, Mline, null, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					Renderer.labelText(feature, "Tanker", new Font("Arial", Font.BOLD, 50), Msymb, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
 					dy += 60;
 					break;
 				case ACH_H24P:
-					Renderer.labelText(feature, "24h", new Font("Arial", Font.BOLD, 50), LabelStyle.NONE, Mline, null, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					Renderer.labelText(feature, "24h", new Font("Arial", Font.BOLD, 50), Msymb, new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
 					dy += 60;
 					break;
 				case ACH_EXPL:
-					Renderer.symbol(feature, Harbours.Explosives, new Scheme(Mline), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					Renderer.symbol(feature, Harbours.Explosives, new Scheme(Msymb), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
 					dy += 60;
 					break;
 				case ACH_QUAR:
-					Renderer.symbol(feature, Harbours.Hospital, new Scheme(Mline), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					Renderer.symbol(feature, Harbours.Hospital, new Scheme(Msymb), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
 					dy += 60;
 					break;
 				case ACH_SEAP:
-					Renderer.symbol(feature, Areas.Seaplane, new Scheme(Mline), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
+					Renderer.symbol(feature, Areas.Seaplane, new Scheme(Msymb), new Delta(Handle.RC, AffineTransform.getTranslateInstance(-60, dy)));
 					dy += 60;
 					break;
+				default:
 				}
 			}
@@ -521,5 +537,5 @@
 		case BERTHS:
 			if (Renderer.zoom >= 14) {
-				Renderer.labelText(feature, name == null ? " " : name, new Font("Arial", Font.PLAIN, 40), LabelStyle.RRCT, Mline, Color.white, null);
+				Renderer.labelText(feature, name == null ? " " : name, new Font("Arial", Font.PLAIN, 40), Msymb, LabelStyle.RRCT, Mline, Color.white, null);
 			}
 			break;
@@ -896,5 +912,5 @@
 					}
 					if (verclr > 0) {
-						Renderer.labelText(feature, String.valueOf(verclr), new Font("Arial", Font.PLAIN, 50), LabelStyle.VCLR, Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0,25)));
+						Renderer.labelText(feature, String.valueOf(verclr), new Font("Arial", Font.PLAIN, 50), Color.black, LabelStyle.VCLR, Color.black, new Delta(Handle.TC, AffineTransform.getTranslateInstance(0,25)));
 					}
 				}
@@ -911,5 +927,5 @@
 		String name = getName(feature);
 		if ((Renderer.zoom >= 15) && (name != null))
-			Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 40), LabelStyle.NONE, Color.black, null, new Delta(Handle.BL, AffineTransform.getTranslateInstance(20, -50)));
+			Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 40), Color.black, new Delta(Handle.BL, AffineTransform.getTranslateInstance(20, -50)));
 		Signals.addSignals(feature);
 	}
@@ -926,5 +942,5 @@
 				String name = getName(feature);
 				if ((Renderer.zoom >= 15) && (name != null))
-					Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 80), LabelStyle.NONE, Color.black, null, null);
+					Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 80), Color.black);
 			}
 		}
@@ -942,5 +958,5 @@
 			String name = getName(feature);
 			if ((Renderer.zoom >= 10) && (name != null))
-				Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 150), LabelStyle.NONE, new Color(0x80c48080, true), null, null);
+				Renderer.labelText(feature, name, new Font("Arial", Font.BOLD, 150), new Color(0x80c48080, true));
 			break;
 		case TSELNE:
@@ -1007,8 +1023,8 @@
 			}
 			if ((Renderer.zoom >= 15) && !str.isEmpty()) {
-				Renderer.labelText(feature, str, new Font("Arial", Font.PLAIN, 40), LabelStyle.NONE, Color.black, null, new Delta(Handle.LC, AffineTransform.getTranslateInstance(30, 0)));
-			}
-		}
-		Signals.addSignals(feature);
+				Renderer.labelText(feature, str, new Font("Arial", Font.PLAIN, 40), Color.black, new Delta(Handle.LC, AffineTransform.getTranslateInstance(30, 0)));
+			}
+			Signals.addSignals(feature);
+		}
 	}
 
Index: applications/editors/josm/plugins/smed2/src/render/Signals.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/render/Signals.java	(revision 30156)
+++ applications/editors/josm/plugins/smed2/src/render/Signals.java	(revision 30157)
@@ -64,5 +64,5 @@
 		}
 		if ((Renderer.zoom >= 15) && !bstr.isEmpty()) {
-			Renderer.labelText(feature, bstr, new Font("Arial", Font.PLAIN, 40), LabelStyle.NONE, Color.black, null, new Delta(Handle.BR, AffineTransform.getTranslateInstance(-30, -30)));
+			Renderer.labelText(feature, bstr, new Font("Arial", Font.PLAIN, 40),Color.black, new Delta(Handle.BR, AffineTransform.getTranslateInstance(-30, -30)));
 		}
 	}
@@ -175,8 +175,8 @@
 		if (Renderer.zoom >= 15) {
 			if (vais) {
-				Renderer.labelText(feature, "V-AIS", new Font("Arial", Font.PLAIN, 40), LabelStyle.NONE, Color.black, null, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 70)));
+				Renderer.labelText(feature, "V-AIS", new Font("Arial", Font.PLAIN, 40), Color.black, new Delta(Handle.BC, AffineTransform.getTranslateInstance(0, 70)));
 			}
 			if (!bstr.isEmpty()) {
-				Renderer.labelText(feature, bstr, new Font("Arial", Font.PLAIN, 40), LabelStyle.NONE, Color.black, null, new Delta(Handle.BR, AffineTransform.getTranslateInstance(-30, -70)));
+				Renderer.labelText(feature, bstr, new Font("Arial", Font.PLAIN, 40), Color.black, new Delta(Handle.BR, AffineTransform.getTranslateInstance(-30, -70)));
 			}
 		}
Index: applications/editors/josm/plugins/smed2/src/s57/S57map.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/s57/S57map.java	(revision 30156)
+++ applications/editors/josm/plugins/smed2/src/s57/S57map.java	(revision 30157)
@@ -13,4 +13,5 @@
 
 import s57.S57att;
+import s57.S57val.AttVal;
 import s57.S57att.*;
 import s57.S57obj;
@@ -351,5 +352,5 @@
 					items.put(idx, atts);
 				}
-				AttVal attval = S57val.convertValue(val, att);
+				AttVal<?> attval = S57val.convertValue(val, att);
 				if (attval.val != null)
 					atts.put(att, new AttItem(attval.conv, attval.val));
@@ -363,5 +364,5 @@
 					Att att = S57att.enumAttribute(subkeys[1], Obj.UNKOBJ);
 					if (att != Att.UNKATT) {
-						AttVal attval = S57val.convertValue(val, att);
+						AttVal<?> attval = S57val.convertValue(val, att);
 						if (attval.val != null)
 							feature.atts.put(att, new AttItem(attval.conv, attval.val));
@@ -436,4 +437,7 @@
 			areas.put(id, area);
 			break;
+		case UNKN:
+		default:
+			break;
 		}
 		if ((feature.type != Obj.UNKOBJ) && !((edge != null) && (edge.last == 0))) {
@@ -556,4 +560,5 @@
 			}
 			return new Snode((sarc > 0.0 ? slat / sarc : 0.0), (sarc > 0.0 ? slon / sarc : 0.0));
+		default:
 		}
 		return null;
Index: applications/editors/josm/plugins/smed2/src/s57/S57val.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/s57/S57val.java	(revision 30156)
+++ applications/editors/josm/plugins/smed2/src/s57/S57val.java	(revision 30157)
@@ -26,9 +26,9 @@
 	}
 	
-	public static class AttVal {
+	public static class AttVal<V> {
 		public Att att;
 		public Conv conv;
-		public Object val;
-		AttVal(Att a, Conv c, Object v) {
+		public V val;
+		AttVal(Att a, Conv c, V v) {
 			att = a; conv = c; val = v;
 		}
@@ -1141,5 +1141,5 @@
 
 	
-	public static String stringValue(AttVal attval) {                  // Convert OSeaM value object to OSeaM attribute value string
+	public static String stringValue(AttVal<?> attval) {                  // Convert OSeaM value object to OSeaM attribute value string
 		switch (attval.conv) {
 		case A:
@@ -1177,11 +1177,11 @@
 	}
 
-	public static AttVal convertValue(String val, Att att) { 				// Convert OSeaM attribute value string to OSeaM value object
+	public static AttVal<?> convertValue(String val, Att att) { 				// Convert OSeaM attribute value string to OSeaM value object
 		switch (keys.get(att).conv) {
 		case A:
 		case S:
-			return new AttVal(att, Conv.S, val);
+			return new AttVal<String>(att, Conv.S, val);
 		case E:
-			return new AttVal(att, Conv.E, enumValue(val, att));
+			return new AttVal<Enum<?>>(att, Conv.E, enumValue(val, att));
 		case L:
 			ArrayList<Enum<?>> list = new ArrayList<Enum<?>>();
@@ -1189,9 +1189,9 @@
 				list.add(enumValue(item, att));
 			}
-			return new AttVal(att, Conv.L, list);
+			return new AttVal<ArrayList<?>>(att, Conv.L, list);
 		case I:
 			try {
 				long i = Long.parseLong(val);
-				return new AttVal(att, Conv.I, i);
+				return new AttVal<Long>(att, Conv.I, i);
 			} catch (Exception e) {
 				break;
@@ -1200,10 +1200,10 @@
 			try {
 				double f = Double.parseDouble(val);
-				return new AttVal(att, Conv.F, f);
+				return new AttVal<Double>(att, Conv.F, f);
 			} catch (Exception e) {
 				break;
 			}
 		}
-		return new AttVal(att, keys.get(att).conv, null);
+		return new AttVal<>(att, keys.get(att).conv, null);
 	}
 
Index: applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java	(revision 30156)
+++ applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java	(revision 30157)
@@ -29,5 +29,4 @@
 import org.openstreetmap.josm.Main;
 
-import s57.S57dat;
 import s57.S57map;
 import s57.S57map.*;
Index: applications/editors/josm/plugins/smed2/src/symbols/Facilities.java
===================================================================
--- applications/editors/josm/plugins/smed2/src/symbols/Facilities.java	(revision 30156)
+++ applications/editors/josm/plugins/smed2/src/symbols/Facilities.java	(revision 30157)
@@ -15,6 +15,5 @@
 import java.util.EnumMap;
 
-import s57.S57val.CatLMK;
-import s57.S57val.CatSCF;
+import s57.S57val.*;
 import symbols.Symbols.*;
 
