Index: /applications/editors/josm/plugins/seachart/src/render/Rules.java
===================================================================
--- /applications/editors/josm/plugins/seachart/src/render/Rules.java	(revision 35839)
+++ /applications/editors/josm/plugins/seachart/src/render/Rules.java	(revision 35840)
@@ -311,6 +311,8 @@
 				if (testObject(Obj.ISTZNE)) for (Feature f : objects) if (testFeature(f)) separation();
 				if (testObject(Obj.SBDARE)) for (Feature f : objects) if (testFeature(f)) areas();
+				if (testObject(Obj.SPRING)) for (Feature f : objects) if (testFeature(f)) areas();
 				if (testObject(Obj.SNDWAV)) for (Feature f : objects) if (testFeature(f)) areas();
 				if (testObject(Obj.WEDKLP)) for (Feature f : objects) if (testFeature(f)) areas();
+				if (testObject(Obj.SEGRAS)) for (Feature f : objects) if (testFeature(f)) areas();
 				if (testObject(Obj.OSPARE)) for (Feature f : objects) if (testFeature(f)) areas();
 				if (testObject(Obj.FAIRWY)) for (Feature f : objects) if (testFeature(f)) areas();
@@ -386,4 +388,5 @@
 	}
 
+	@SuppressWarnings("unchecked")
 	private static void areas() {
 		String name = getName();
@@ -552,5 +555,5 @@
 			break;
 		case SBDARE:
-			if (Renderer.zoom >= 12) {
+			if (Renderer.zoom >= 14) {
 				String str = "";
 				String sep = ".";
@@ -649,5 +652,5 @@
 					}
 					if (!str.isEmpty()) {
-						Renderer.labelText(str, new Font("Arial", Font.ITALIC, 60), Color.black, new Delta(Handle.CC));
+						Renderer.labelText(str, new Font("Arial", Font.ITALIC, 40), Color.black, new Delta(Handle.CC));
 					}
 				}
@@ -655,5 +658,5 @@
 			break;
 		case WEDKLP:
-			if (Renderer.zoom >= 12) {
+			if (Renderer.zoom >= 14) {
 				switch ((CatWED) getAttEnum(feature.type, Att.CATWED)) {
 				case WED_KELP:
@@ -664,8 +667,22 @@
 					}
 					break;
+				case WED_SWED:
+					Renderer.labelText("Wd", new Font("Arial", Font.ITALIC, 40), Color.black, new Delta(Handle.CC));
+					break;
+				case WED_SGRS:
+					Renderer.labelText("Sg", new Font("Arial", Font.ITALIC, 40), Color.black, new Delta(Handle.CC));
+					break;
+				case WED_SGSO:
+					break;
 				default:
 					break;
 				}
 			}
+			break;
+		case SEGRAS:
+			Renderer.labelText("Sg", new Font("Arial", Font.ITALIC, 40), Color.black, new Delta(Handle.CC));
+			break;
+		case SPRING:
+			Renderer.symbol(Areas.Spring);
 			break;
 		case SPLARE:
Index: /applications/editors/josm/plugins/seachart/src/s57/S57obj.java
===================================================================
--- /applications/editors/josm/plugins/seachart/src/s57/S57obj.java	(revision 35839)
+++ /applications/editors/josm/plugins/seachart/src/s57/S57obj.java	(revision 35840)
@@ -27,5 +27,5 @@
         TSSBND, TSSCRS, TSSLPT, TSSRON, TSEZNE, TUNNEL, TWRTPT, UWTROC, UNSARE, VEGATN, WATTUR, WATFAL, WEDKLP, WRECKS, TS_FEB, NOTMRK,
         WTWAXS, WTWPRF, BUNSTA, COMARE, HRBBSN, LOKARE, LKBSPT, PRTARE, REFDMP, TERMNL, TRNBSN, WTWARE, WTWGAG, TISDGE, VEHTRF, EXCNST,
-        LG_SDM, LG_VSP, LITMIN, LITMAJ, VAATON
+        LG_SDM, LG_VSP, LITMIN, LITMAJ, VAATON, SEGRAS
     }
 
@@ -65,5 +65,5 @@
         ObjS57.put(Obj.WATTUR, 156); ObjS57.put(Obj.WATFAL, 157); ObjS57.put(Obj.WEDKLP, 158); ObjS57.put(Obj.WRECKS, 159); ObjS57.put(Obj.TS_FEB, 160);
         ObjS57.put(Obj.MPAARE, 199); ObjS57.put(Obj.M_COVR, 302); ObjS57.put(Obj.M_NSYS, 306); ObjS57.put(Obj.LITMAJ, 74); ObjS57.put(Obj.LITMIN, 90);
-        ObjS57.put(Obj.VAATON, 900);
+        ObjS57.put(Obj.VAATON, 900); ObjS57.put(Obj.SEGRAS, 901);
     }
 
@@ -115,5 +115,5 @@
         ObjStr.put(Obj.RCTLPT, "recommended_traffic_lane"); ObjStr.put(Obj.RSCSTA, "rescue_station"); ObjStr.put(Obj.RESARE, "restricted_area");
         ObjStr.put(Obj.RETRFL, "retro_reflector"); ObjStr.put(Obj.RIVERS, "river"); ObjStr.put(Obj.ROADWY, "road"); ObjStr.put(Obj.RUNWAY, "runway");
-        ObjStr.put(Obj.SNDWAV, "sand_waves"); ObjStr.put(Obj.SEAARE, "sea_area"); ObjStr.put(Obj.SPLARE, "seaplane_landing_area"); ObjStr.put(Obj.SBDARE, "seabed_area");
+        ObjStr.put(Obj.SNDWAV, "sandwaves"); ObjStr.put(Obj.SEAARE, "sea_area"); ObjStr.put(Obj.SPLARE, "seaplane_landing_area"); ObjStr.put(Obj.SBDARE, "seabed_area");
         ObjStr.put(Obj.SLCONS, "shoreline_construction"); ObjStr.put(Obj.SISTAT, "signal_station_traffic"); ObjStr.put(Obj.SISTAW, "signal_station_warning");
         ObjStr.put(Obj.SILTNK, "tank"); ObjStr.put(Obj.SLOTOP, "slope_topline"); ObjStr.put(Obj.SLOGRD, "sloping_ground"); ObjStr.put(Obj.SMCFAC, "small_craft_facility");
@@ -130,5 +130,5 @@
         ObjStr.put(Obj.TISDGE, "time_schedule"); ObjStr.put(Obj.VEHTRF, "vehicle_transfer"); ObjStr.put(Obj.EXCNST, "exceptional_structure"); ObjStr.put(Obj.MPAARE, "protected_area");
         ObjStr.put(Obj.LITMAJ, "light_major"); ObjStr.put(Obj.LITMIN, "light_minor"); ObjStr.put(Obj.M_COVR, "coverage"); ObjStr.put(Obj.M_NSYS, "system");
-        ObjStr.put(Obj.VAATON, "virtual_aton");
+        ObjStr.put(Obj.VAATON, "virtual_aton"); ObjStr.put(Obj.SEGRAS, "seagrass");
     }
 
Index: /applications/editors/josm/plugins/seachart/src/symbols/Areas.java
===================================================================
--- /applications/editors/josm/plugins/seachart/src/symbols/Areas.java	(revision 35839)
+++ /applications/editors/josm/plugins/seachart/src/symbols/Areas.java	(revision 35840)
@@ -267,12 +267,34 @@
         g2.setBackground(new Color(0, true));
         g2.clearRect(0, 0, 100, 100);
-        g2.setPaint(new Color(0xffd400));
-        Path2D.Double p = new Path2D.Double(); p.moveTo(0.0, 34.5); p.lineTo(03.3, 30.8); p.lineTo(09.9, 19.3); p.lineTo(13.2, 16.0); p.lineTo(16.5, 16.1); p.lineTo(18.2, 19.5);
+        g2.setPaint(Color.black);
+        Path2D.Double p = new Path2D.Double();
+        p.moveTo(0.0, 34.5); p.lineTo(03.3, 30.8); p.lineTo(09.9, 19.3); p.lineTo(13.2, 16.0); p.lineTo(16.5, 16.1); p.lineTo(18.2, 19.5);
         p.lineTo(19.9, 25.0); p.lineTo(21.6, 30.3); p.lineTo(23.3, 33.4); p.lineTo(25.0, 33.3); p.lineTo(28.3, 30.1); p.lineTo(31.6, 25.0); p.lineTo(34.9, 20.1); p.lineTo(38.2, 17.2);
-        p.lineTo(41.5, 17.3); p.lineTo(43.2, 20.3); p.lineTo(44.9, 25); p.lineTo(46.6, 29.6); p.lineTo(48.3, 32.2); p.lineTo(50.0, 32.1);
+        p.lineTo(41.5, 17.3); p.lineTo(43.2, 20.3); p.lineTo(44.9, 25); p.lineTo(46.6, 29.6); p.lineTo(48.3, 32.2); p.lineTo(50.0, 32.1);        
         p.moveTo(50.0, 84.5); p.lineTo(53.3, 80.8); p.lineTo(56.6, 75.0); p.lineTo(59.9, 69.3); p.lineTo(63.2, 66.0); p.lineTo(66.5, 66.1); p.lineTo(68.2, 69.5); p.lineTo(69.9, 75.0);
         p.lineTo(71.6, 80.3); p.lineTo(73.3, 83.4); p.lineTo(75.0, 83.3); p.lineTo(78.3, 80.1); p.lineTo(81.6, 75.0); p.lineTo(84.9, 70.1); p.lineTo(88.2, 67.2); p.lineTo(91.5, 67.3);
         p.lineTo(93.2, 70.3); p.lineTo(94.9, 75.0); p.lineTo(96.6, 79.6); p.lineTo(98.3, 82.2); p.lineTo(100.0, 82.1);
         g2.draw(p);
+    }
+    
+    public static final Symbol Spring = new Symbol();
+    static {
+        Spring.add(new Instr(Form.FILL, Color.black));
+        Spring.add(new Instr(Form.STRK, new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(0, 0, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-20, 0, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-40, 0, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(20, 0, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(40, 0, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(0, -20, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(0, -40, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(0, -60, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(0, -80, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-15, -90, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(15, -90, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-35, -85, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(35, -85, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(-50, -70, 7.5, 7.5)));
+        Spring.add(new Instr(Form.ELPS, new Ellipse2D.Double(50, -70, 7.5, 7.5)));
     }
 
@@ -289,5 +311,5 @@
     static {
         Graphics2D g2 = KelpA.createGraphics();
-        g2.setStroke(new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
+        g2.setStroke(new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
         g2.setBackground(new Color(0, true));
         g2.clearRect(0, 0, 240, 240);
