Index: /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22556)
+++ /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22557)
@@ -712,5 +712,5 @@
 
 			lM01Icon03 = new JLabel();
-			lM01Icon03.setBounds(new Rectangle(205, 130, 60, 70));
+			lM01Icon03.setBounds(new Rectangle(205, 135, 70, 60));
 			lM01Icon03.setIcon(null);
 			lM01Icon03.setText("");
@@ -1245,5 +1245,5 @@
 					buoy.setLightChar(c);
 					buoy.setLightGroup(g);
-//					buoy.setLightColour();
+					// buoy.setLightColour();
 
 					buoy.paintSign();
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java	(revision 22556)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java	(revision 22557)
@@ -91,4 +91,6 @@
 	public final static int LIGHT_MAJOR = 1;
 	public final static int LIGHT_MINOR = 2;
+	public final static int LIGHT_FLOAT = 3;
+	public final static int LIGHT_HOUSE = 4;
 
 	/**
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 22556)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 22557)
@@ -117,5 +117,5 @@
 		case ISOL_BEACON:
 			Main.main.undoRedo.add(new ChangePropertyCommand(node,
-					"seamark:buoy_isolated_danger:shape", "beacon"));
+					"seamark:beacon_isolated_danger:shape", "stake"));
 			break;
 		default:
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 22556)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 22557)
@@ -488,5 +488,5 @@
 				super.saveSign("beacon_lateral");
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
-						"seamark:buoy_lateral:shape", "beacon"));
+						"seamark:buoy_lateral:shape", "stake"));
 				break;
 			case LAT_TOWER:
@@ -563,5 +563,5 @@
 				super.saveSign("beacon_lateral");
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
-						"seamark:buoy_lateral:shape", "beacon"));
+						"seamark:buoy_lateral:shape", "stake"));
 				break;
 			case LAT_TOWER:
@@ -621,5 +621,5 @@
 				super.saveSign("buoy_lateral");
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
-						"seamark:buoy_lateral:shape", "cone"));
+						"seamark:buoy_lateral:shape", "conical"));
 				break;
 			case LAT_PILLAR:
@@ -636,5 +636,5 @@
 				super.saveSign("beacon_lateral");
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
-						"seamark:buoy_lateral:shape", "beacon"));
+						"seamark:buoy_lateral:shape", "stake"));
 				break;
 			case LAT_TOWER:
@@ -695,5 +695,5 @@
 				super.saveSign("buoy_lateral");
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
-						"seamark:buoy_lateral:shape", "cone"));
+						"seamark:buoy_lateral:shape", "conical"));
 				break;
 			case LAT_PILLAR:
@@ -710,5 +710,5 @@
 				super.saveSign("beacon_lateral");
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
-						"seamark:buoy_lateral:shape", "beacon"));
+						"seamark:buoy_lateral:shape", "stake"));
 				break;
 			case LAT_TOWER:
@@ -939,5 +939,5 @@
 
 			case STARBOARD_HAND:
-				if (str.compareTo("cone") == 0)
+				if (str.compareTo("conical") == 0)
 					setStyleIndex(LAT_CONE);
 				else if (str.compareTo("pillar") == 0)
@@ -954,5 +954,5 @@
 
 			case PREF_STARBOARD_HAND:
-				if (str.compareTo("cone") == 0)
+				if (str.compareTo("conical") == 0)
 					setStyleIndex(LAT_CONE);
 				else if (str.compareTo("pillar") == 0)
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 22556)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 22557)
@@ -57,4 +57,6 @@
 		dlg.cbM01StyleOfMark.addItem("Major Light");
 		dlg.cbM01StyleOfMark.addItem("Minor Light");
+		dlg.cbM01StyleOfMark.addItem("Light Float");
+		dlg.cbM01StyleOfMark.addItem("Lighthouse");
 
 		if (style >= dlg.cbM01StyleOfMark.getItemCount())
@@ -79,4 +81,5 @@
 		switch (getStyleIndex()) {
 		case SeaMark.LIGHT_MAJOR:
+		case SeaMark.LIGHT_HOUSE:
 			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(
 					"/images/Light_Major.png")));
@@ -86,4 +89,9 @@
 			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(
 					"/images/Light_Minor.png")));
+			break;
+
+		case SeaMark.LIGHT_FLOAT:
+			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(
+					"/images/Major_Float.png")));
 			break;
 
@@ -116,4 +124,7 @@
 		case LIGHT_MINOR:
 			super.saveSign("minor_light");
+			break;
+		case LIGHT_FLOAT:
+			super.saveSign("major_floating_light");
 			break;
 		default:
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22556)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22557)
@@ -23,5 +23,5 @@
 		dlg.cbM01StyleOfMark.addItem("Pillar Buoy");
 		dlg.cbM01StyleOfMark.addItem("Spar Buoy");
-		dlg.cbM01StyleOfMark.addItem("Beacon Buoy");
+		dlg.cbM01StyleOfMark.addItem("Beacon");
 		dlg.cbM01StyleOfMark.addItem("Sphere Buoy");
 		dlg.cbM01StyleOfMark.addItem("Barrel");
@@ -65,9 +65,9 @@
 		case SPEC_BEACON:
 			if (isFired())
-			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(
-					"/images/Special_Purpose_Beacon_Lit.png")));
+				dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Special_Purpose_Beacon_Lit.png")));
 			else
 				dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(
-				"/images/Special_Purpose_Beacon.png")));
+						"/images/Special_Purpose_Beacon.png")));
 			break;
 		case SPEC_SPHERE:
@@ -91,5 +91,5 @@
 				c = "";
 		}
-		
+
 		switch (getStyleIndex()) {
 		case SPEC_PILLAR:
@@ -115,5 +115,8 @@
 		}
 
-		super.saveSign("buoy_special_purpose");
+		if (getStyleIndex() == SPEC_BEACON)
+			super.saveSign("beacon_special_purpose");
+		else
+			super.saveSign("buoy_special_purpose");
 
 		switch (getStyleIndex()) {
@@ -129,4 +132,8 @@
 			Main.main.undoRedo.add(new ChangePropertyCommand(node,
 					"seamark:buoy_special_purpose:shape", "sphere"));
+			break;
+		case SPEC_BEACON:
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_special_purpose:shape", "stake"));
 			break;
 		case SPEC_BARREL:
@@ -224,5 +231,5 @@
 		if (keys.containsKey("seamark:buoy_special_purpose:shape")) {
 			str = keys.get("seamark:buoy_special_purpose:shape");
-			
+
 			if (str.compareTo("pillar") == 0)
 				setStyleIndex(SPEC_PILLAR);
