Index: /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23092)
+++ /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23093)
@@ -663,4 +663,5 @@
 				public void actionPerformed(java.awt.event.ActionEvent e) {
 					buoy.setSectored(rbM01FiredN.isSelected());
+					if (rbM01Fired1.isSelected()) buoy.setSectorIndex(0);
 					buoy.paintSign();
 				}
@@ -1185,5 +1186,5 @@
 			tfM01Height.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01Height.getText().trim());
+					buoy.setHeight(tfM01Height.getText().trim());
 				}
 			});
@@ -1198,5 +1199,5 @@
 			tfM01Range.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01Range.getText().trim());
+					buoy.setRange(tfM01Range.getText().trim());
 				}
 			});
@@ -1276,5 +1277,6 @@
 			cbM01Sector.addActionListener(new ActionListener() {
 				public void actionPerformed(ActionEvent e) {
-					int sec = cbM01Sector.getSelectedIndex();
+					buoy.setSectorIndex(cbM01Sector.getSelectedIndex());
+					buoy.paintSign();
 				}
 			});
@@ -1289,5 +1291,4 @@
 			tfM01Bearing.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-//					buoy.setName(tfM01Bearing.getText());
 				}
 			});
@@ -1302,5 +1303,4 @@
 			tfM02Bearing.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-//					buoy.setName(tfM02Bearing.getText());
 				}
 			});
@@ -1315,5 +1315,4 @@
 			tfM01Radius.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-//					buoy.setName(tfM01Radius.getText());
 				}
 			});
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23092)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23093)
@@ -6,4 +6,5 @@
 import java.util.Enumeration;
 import java.util.Map;
+import java.util.Iterator;
 import java.util.Vector;
 import java.util.regex.Matcher;
@@ -158,69 +159,76 @@
 	}
 
-	private String LightChar = "";
+	private int SectorIndex = 0;
+
+	public int getSectorIndex() {
+		return SectorIndex;
+	}
+
+	public void setSectorIndex(int sector) {
+		SectorIndex = sector;
+	}
+
+	private String[] LightChar = new String[10];
 
 	public String getLightChar() {
-		return LightChar;
+		return LightChar[getSectorIndex()];
 	}
 
 	public void setLightChar(String lightChar) {
-		LightChar = lightChar;
-	}
-
-	private String LightColour = "";
+		LightChar[getSectorIndex()] = lightChar;
+	}
+
+	private String[] LightColour = new String[10];
 
 	public String getLightColour() {
-		return LightColour;
+		return LightColour[getSectorIndex()];
 	}
 
 	public void setLightColour(String lightColour) {
-		LightColour = lightColour;
-	}
-
-	private String LightGroup = "";
+		LightColour[getSectorIndex()] = lightColour;
+	}
+
+	private String[] LightGroup = new String[10];
 
 	public String getLightGroup() {
-		return LightGroup;
+		return LightGroup[getSectorIndex()];
 	}
 
 	public void setLightGroup(String lightGroup) {
-		LightGroup = lightGroup;
+		LightGroup[getSectorIndex()] = lightGroup;
 	}
 
 	protected void setLightGroup(Map<String, String> k) {
 		String s = "";
-
 		if (k.containsKey("seamark:light:group")) {
 			s = k.get("seamark:light:group");
-
-			LightGroup = s;
-		}
-
-	}
-
-	private String Height = "";
+			setLightGroup(s);
+		}
+	}
+
+	private String[] Height = new String[10];
 
 	public String getHeight() {
-		return Height;
+		return Height[getSectorIndex()];
 	}
 
 	public void setHeight(String height) {
-		Height = height;
-	}
-
-	private String Range = "";
+		Height[getSectorIndex()] = height;
+	}
+
+	private String[] Range = new String[10];
 
 	public String getRange() {
-		return Range;
+		return Range[getSectorIndex()];
 	}
 
 	public void setRange(String range) {
-		Range = range;
-	}
-
-	private String LightPeriod = "";
+		Range[getSectorIndex()] = range;
+	}
+
+	private String[] LightPeriod = new String[10];
 
 	public String getLightPeriod() {
-		return LightPeriod;
+		return LightPeriod[getSectorIndex()];
 	}
 
@@ -235,6 +243,5 @@
 
 		if (matcher.find()) {
-			LightPeriod = lightPeriod;
-
+			LightPeriod[getSectorIndex()] = lightPeriod;
 			setErrMsg(null);
 		} else {
@@ -242,27 +249,27 @@
 			dlg.tfM01RepeatTime.requestFocus();
 		}
-
 	}
 
 	protected void setLightPeriod(Map<String, String> k) {
-		String s;
-
-		s = "";
-
-		if (k.containsKey("seamark:light:signal:period")) {
-			s = k.get("seamark:light:signal:period");
-			LightPeriod = s;
-
-			return;
-		}
-
+		String s = "";
 		if (k.containsKey("seamark:light:period")) {
 			s = k.get("seamark:light:period");
-			LightPeriod = s;
-
+			setSectorIndex(0);
+			setLightPeriod(s);
 			return;
 		}
 	}
 
+	public void parseLights(Map<String, String> k) {
+    Iterator it = k.entrySet().iterator();
+    while (it.hasNext()) {
+        String key = (String)((Map.Entry)it.next()).getKey();
+        if (key.contains("seamark:light:")) {
+          String value = ((String)((Map.Entry)it.next()).getValue()).trim();
+        	
+        }
+    }
+}
+	
 	private Node Node = null;
 
@@ -326,5 +333,5 @@
 			dlg.cM01Fired.setSelected(isFired());
 
-			dlg.tfM01RepeatTime.setText(LightPeriod);
+			dlg.tfM01RepeatTime.setText(getLightPeriod());
 
 			dlg.tfM01Name.setText(getName());
@@ -496,15 +503,16 @@
 				setLightColour("W");
 			}
-			if (LightPeriod != "" && LightPeriod != " " && LightChar != "Q")
-				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
-						"seamark:light:period", LightPeriod));
-
-			if (LightChar != "")
-				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
-						"seamark:light:character", LightChar));
-
-			if (LightGroup != "")
-				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
-						"seamark:light:group", LightGroup));
+			if (getLightPeriod() != "" && getLightPeriod() != " "
+					&& getLightChar() != "Q")
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:period", getLightPeriod()));
+
+			if (getLightChar() != "")
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:character", getLightChar()));
+
+			if (getLightGroup() != "")
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:group", getLightGroup()));
 		}
 	}
@@ -581,21 +589,13 @@
 					break;
 				}
-			if (!getFogGroup().equals(""))
-				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
-						"seamark:fog_group:group", getFogGroup()));
-			if (!getFogPeriod().equals(""))
-				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
-						"seamark:fog_period:group", getFogPeriod()));
+				if (!getFogGroup().equals(""))
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_group:group", getFogGroup()));
+				if (!getFogPeriod().equals(""))
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_period:group", getFogPeriod()));
 			}
 		}
 	}
-
-	public final static int FOG_HORN = 1;
-	public final static int FOG_SIREN = 2;
-	public final static int FOG_DIA = 3;
-	public final static int FOG_BELL = 4;
-	public final static int FOG_WHIS = 5;
-	public final static int FOG_GONG = 6;
-	public final static int FOG_EXPLOS = 7;
 
 	public void refreshStyles() {
@@ -674,15 +674,20 @@
 		dlg.rbM01FiredN.setVisible(false);
 		setSectored(false);
+		setSectorIndex(0);
 		dlg.cbM01Kennung.removeAllItems();
 		dlg.cbM01Kennung.setVisible(false);
 		dlg.lM01Kennung.setVisible(false);
+		setLightChar("");
 		dlg.tfM01Height.setText("");
 		dlg.tfM01Height.setVisible(false);
 		dlg.lM01Height.setVisible(false);
+		setHeight("");
 		dlg.tfM01Range.setText("");
 		dlg.tfM01Range.setVisible(false);
 		dlg.lM01Range.setVisible(false);
+		setRange("");
 		dlg.cbM01Colour.setVisible(false);
 		dlg.lM01Colour.setVisible(false);
+		setLightColour("");
 		dlg.cbM01Sector.setVisible(false);
 		dlg.lM01Sector.setVisible(false);
@@ -690,7 +695,9 @@
 		dlg.tfM01Group.setVisible(false);
 		dlg.lM01Group.setVisible(false);
+		setLightGroup("");
 		dlg.tfM01RepeatTime.setText("");
 		dlg.tfM01RepeatTime.setVisible(false);
 		dlg.lM01RepeatTime.setVisible(false);
+		setLightPeriod("");
 		dlg.tfM01Bearing.setText("");
 		dlg.tfM01Bearing.setVisible(false);
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23092)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23093)
@@ -25,5 +25,5 @@
 
 		resetMask();
-
+		
 		dlg.rbM01RegionA.setEnabled(true);
 		dlg.rbM01RegionB.setEnabled(true);
