Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23139)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23140)
@@ -406,4 +406,5 @@
 
 			dlg.tfM01Name.setText(getName());
+			dlg.tfM01Name.setEnabled(true);
 
 			if (hasRadar()) {
@@ -569,4 +570,5 @@
 		} else {
 			dlg.bM01Save.setEnabled(false);
+			dlg.tfM01Name.setEnabled(false);
 			dlg.cM01TopMark.setVisible(false);
 			dlg.cbM01TopMark.setVisible(false);
@@ -618,35 +620,75 @@
 	}
 
-	protected void saveLightData(String colour) {
-		if (colour.isEmpty()) {
-			return;
-		}
+	protected void saveLightData() {
 
 		if (dlg.cM01Fired.isSelected()) {
-			if (colour.equals("red")) {
+			setSectorIndex(0);
+			String colour = getLightColour();
+			if (colour.equals("R")) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
 						"seamark:light:colour", "red"));
-				setLightColour("R");
-			} else if (colour.equals("green")) {
+			} else if (colour.equals("G")) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
 						"seamark:light:colour", "green"));
-				setLightColour("G");
-			} else if (colour.equals("white")) {
+			} else if (colour.equals("W")) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
 						"seamark:light:colour", "white"));
-				setLightColour("W");
-			}
-			if (getLightPeriod() != "" && getLightPeriod() != " "
-					&& getLightChar() != "Q")
+			}
+
+			if (!getLightPeriod().isEmpty())
 				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
 						"seamark:light:period", getLightPeriod()));
 
-			if (getLightChar() != "")
+			if (!getLightChar().isEmpty())
 				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
 						"seamark:light:character", getLightChar()));
 
-			if (getLightGroup() != "")
+			if (!getLightGroup().isEmpty())
 				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
 						"seamark:light:group", getLightGroup()));
+
+			if (!getHeight().isEmpty())
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:height", getHeight()));
+
+			if (!getRange().isEmpty())
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:range", getRange()));
+
+			for (int i = 1; i < 10; i++) {
+				setSectorIndex(i);
+				
+				colour = getLightColour();
+				if (colour.equals("R")) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:colour:" + i, "red"));
+				} else if (colour.equals("G")) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:colour:" + i, "green"));
+				} else if (colour.equals("W")) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:colour:" + i, "white"));
+				}
+
+				if (!getLightPeriod().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:period:" + i, getLightPeriod()));
+
+				if (!getLightChar().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:character:" + i, getLightChar()));
+
+				if (!getLightGroup().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:group:" + i, getLightGroup()));
+
+				if (!getHeight().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:height:" + i, getHeight()));
+
+				if (!getRange().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:range:" + i, getRange()));
+			}
 		}
 	}
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 23139)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 23140)
@@ -409,5 +409,5 @@
 		}
 		saveTopMarkData(shape, "black"); //$NON-NLS-1$
-		saveLightData("white"); //$NON-NLS-1$
+		saveLightData(); //$NON-NLS-1$
 		saveRadarFogData();
 	}
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 23139)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 23140)
@@ -225,5 +225,5 @@
 
 		saveTopMarkData("2 spheres", "black"); //$NON-NLS-1$ //$NON-NLS-2$
-		saveLightData("white"); //$NON-NLS-1$
+		saveLightData(); //$NON-NLS-1$
 		saveRadarFogData();
 
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23139)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23140)
@@ -951,5 +951,5 @@
 		}
 		saveTopMarkData(shape, colour);
-		saveLightData(colour);
+		saveLightData();
 		saveRadarFogData();
 
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23139)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23140)
@@ -96,5 +96,5 @@
 		}
 
-		switch (getStyleIndex()) {
+		switch (getBuoyIndex()) {
 		case LIGHT_HOUSE:
 			super.saveSign("lighthouse"); //$NON-NLS-1$
@@ -108,5 +108,5 @@
 		default:
 		}
-		saveLightData("white"); //$NON-NLS-1$
+		saveLightData(); //$NON-NLS-1$
 		saveRadarFogData();
 	}
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 23139)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 23140)
@@ -217,5 +217,5 @@
 		}
 		saveTopMarkData("spherical", "red"); //$NON-NLS-1$ //$NON-NLS-2$
-		saveLightData("white"); //$NON-NLS-1$
+		saveLightData(); //$NON-NLS-1$
 		saveRadarFogData();
 	}
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 23139)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 23140)
@@ -250,5 +250,5 @@
 		}
 		saveTopMarkData("x-shape", "yellow"); //$NON-NLS-1$ //$NON-NLS-2$
-		saveLightData("white"); //$NON-NLS-1$
+		saveLightData(); //$NON-NLS-1$
 		saveRadarFogData();
 	}
