Index: /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23086)
@@ -153,4 +153,5 @@
 	public JTextField tfM01Height = null;
 	public JLabel lM01Range = null;
+	public JTextField tfM01Range = null;
 	public JLabel lM01Group = null;
 	public JTextField tfM01Group = null;
@@ -165,5 +166,4 @@
 	public JTextField tfM02Bearing = null;
 	public JTextField tfM01Radius = null;
-	public JTextField tfM01Range = null;
 	public JButton bM01Save = null;
 	public JButton bM01Close = null;
@@ -662,4 +662,5 @@
 			ActionListener alM01Fired = new ActionListener() {
 				public void actionPerformed(java.awt.event.ActionEvent e) {
+					buoy.setSectored(rbM01FiredN.isSelected());
 					buoy.paintSign();
 				}
@@ -865,6 +866,4 @@
 						return;
 					}
-					if (cat == 0)
-						return;
 
 					Node n = buoy.getNode();
@@ -1035,5 +1034,5 @@
 			tfM01Racon.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setRaconGroup(tfM01Racon.getText());
+					buoy.setRaconGroup(tfM01Racon.getText().trim());
 				}
 			});
@@ -1091,5 +1090,5 @@
 			tfM01FogGroup.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setFogGroup(tfM01FogGroup.getText());
+					buoy.setFogGroup(tfM01FogGroup.getText().trim());
 				}
 			});
@@ -1104,5 +1103,5 @@
 			tfM01FogPeriod.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setFogPeriod(tfM01FogPeriod.getText());
+					buoy.setFogPeriod(tfM01FogPeriod.getText().trim());
 				}
 			});
@@ -1186,5 +1185,5 @@
 			tfM01Height.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01Height.getText());
+					buoy.setName(tfM01Height.getText().trim());
 				}
 			});
@@ -1199,5 +1198,5 @@
 			tfM01Range.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01Range.getText());
+					buoy.setName(tfM01Range.getText().trim());
 				}
 			});
@@ -1212,5 +1211,6 @@
 			tfM01Group.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setLightGroup(tfM01Group.getText());
+					buoy.setLightGroup(tfM01Group.getText().trim());
+					buoy.paintSign();
 				}
 			});
@@ -1225,7 +1225,5 @@
 			tfM01RepeatTime.addActionListener(new ActionListener() {
 				public void actionPerformed(ActionEvent e) {
-					String s = tfM01RepeatTime.getText();
-
-					buoy.setLightPeriod(s);
+					buoy.setLightPeriod(tfM01RepeatTime.getText().trim());
 					buoy.paintSign();
 				}
@@ -1234,12 +1232,9 @@
 			tfM01RepeatTime.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					String s = tfM01RepeatTime.getText();
-
-					buoy.setLightPeriod(s);
-					buoy.paintSign();
-				}
-			});
-		}
-
+					buoy.setLightPeriod(tfM01RepeatTime.getText().trim());
+					buoy.paintSign();
+				}
+			});
+		}
 		return tfM01RepeatTime;
 	}
@@ -1250,4 +1245,5 @@
 			cbM01Colour.setBounds(new Rectangle(165, 295, 40, 20));
 			cbM01Colour.setFont(new Font("Dialog", Font.PLAIN, 12)); //$NON-NLS-1$
+			cbM01Colour.addItem(""); //$NON-NLS-1$
 			cbM01Colour.addItem(Messages.getString("SmpDialogAction.190")); //$NON-NLS-1$
 			cbM01Colour.addItem(Messages.getString("SmpDialogAction.191")); //$NON-NLS-1$
@@ -1255,5 +1251,6 @@
 			cbM01Colour.addActionListener(new ActionListener() {
 				public void actionPerformed(ActionEvent e) {
-					int col = cbM01Colour.getSelectedIndex();
+					buoy.setLightColour((String)cbM01Colour.getSelectedItem());
+					buoy.paintSign();
 				}
 			});
@@ -1292,5 +1289,5 @@
 			tfM01Bearing.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01Bearing.getText());
+//					buoy.setName(tfM01Bearing.getText());
 				}
 			});
@@ -1305,5 +1302,5 @@
 			tfM02Bearing.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM02Bearing.getText());
+//					buoy.setName(tfM02Bearing.getText());
 				}
 			});
@@ -1318,5 +1315,5 @@
 			tfM01Radius.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01Radius.getText());
+//					buoy.setName(tfM01Radius.getText());
 				}
 			});
@@ -1329,5 +1326,5 @@
 			bM01Close = new JButton();
 			bM01Close.setBounds(new Rectangle(20, 325, 110, 20));
-			bM01Close.setText(tr("close"));
+			bM01Close.setText(tr("Close"));
 			bM01Close.addActionListener(new ActionListener() {
 				public void actionPerformed(ActionEvent e) {
@@ -1353,5 +1350,5 @@
 			bM01Save = new JButton();
 			bM01Save.setBounds(new Rectangle(150, 325, 110, 20));
-			bM01Save.setText(tr("save"));
+			bM01Save.setText(tr("Save"));
 			bM01Save.setEnabled(false);
 
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23086)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 
+import toms.Messages;
 import toms.dialogs.SmpDialogAction;
 import toms.seamarks.SeaMark;
@@ -145,4 +146,14 @@
 	public void setFired(boolean fired) {
 		Fired = fired;
+	}
+
+	private boolean Sectored = false;
+
+	public boolean isSectored() {
+		return Sectored;
+	}
+
+	public void setSectored(boolean sectored) {
+		Sectored = sectored;
 	}
 
@@ -387,8 +398,11 @@
 
 				c = getLightChar();
-				if (dlg.cbM01Kennung.getSelectedIndex() == 0)
+				if (dlg.cbM01Kennung.getSelectedIndex() == 0) {
+					dlg.tfM01Group.setEnabled(false);
 					dlg.tfM01RepeatTime.setEnabled(false);
-				else
+				} else {
+					dlg.tfM01Group.setEnabled(true);
 					dlg.tfM01RepeatTime.setEnabled(true);
+				}
 
 				if (c.contains("+")) {
@@ -398,5 +412,5 @@
 				}
 
-				if (getLightGroup() != "")
+				if (!getLightGroup().equals(""))
 					c = c + "(" + getLightGroup() + ")";
 				if (tmp != null)
@@ -405,5 +419,5 @@
 				c = c + " " + getLightColour();
 				lp = getLightPeriod();
-				if (lp != "" && lp != " ")
+				if (!lp.equals(""))
 					c = c + " " + lp + "s";
 				dlg.lM01FireMark.setText(c);
@@ -589,4 +603,20 @@
 
 	public void refreshLights() {
+		dlg.cbM01Kennung.removeAllItems();
+		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Fl"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("LFl"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Iso"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("F"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("FFl"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Oc"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Q"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("IQ"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("VQ"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("IVQ"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("UQ"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("IUQ"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Mo"); //$NON-NLS-1$
+		dlg.cbM01Kennung.setSelectedIndex(0);
 	}
 
@@ -601,4 +631,5 @@
 		dlg.rbM01RegionA.setEnabled(false);
 		dlg.rbM01RegionB.setEnabled(false);
+		dlg.lM01FireMark.setText("");
 		dlg.cbM01CatOfMark.removeAllItems();
 		dlg.cbM01CatOfMark.setVisible(false);
@@ -642,4 +673,5 @@
 		dlg.rbM01Fired1.setVisible(false);
 		dlg.rbM01FiredN.setVisible(false);
+		setSectored(false);
 		dlg.cbM01Kennung.removeAllItems();
 		dlg.cbM01Kennung.setVisible(false);
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 23086)
@@ -199,5 +199,5 @@
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		if ((getBuoyIndex() > 0) && (getStyleIndex() > 0)) {
+		if (isValid()) {
 			dlg.tfM01Name.setEnabled(true);
 			dlg.tfM01Name.setText(getName());
@@ -205,9 +205,6 @@
 			dlg.cM01TopMark.setVisible(true);
 			dlg.cM01TopMark.setEnabled(false);
-			dlg.cM01Radar.setEnabled(true);
 			dlg.cM01Radar.setVisible(true);
-			dlg.cM01Racon.setEnabled(true);
 			dlg.cM01Racon.setVisible(true);
-			dlg.cM01Fog.setEnabled(true);
 			dlg.cM01Fog.setVisible(true);
 			dlg.cM01Fired.setEnabled(true);
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 23086)
@@ -37,7 +37,5 @@
 		dlg.lM01StyleOfMark.setVisible(true);
 
-		dlg.cbM01Kennung.removeAllItems();
-		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl(2)"); //$NON-NLS-1$
+		refreshLights();
 
 		setBuoyIndex(ISOLATED_DANGER);
@@ -102,4 +100,11 @@
 			}
 		}
+	}
+	
+	public void refreshLights() {
+		dlg.cbM01Kennung.removeAllItems();
+		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Fl(2)"); //$NON-NLS-1$
+		dlg.cbM01Kennung.setSelectedIndex(0);
 	}
 	
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23086)
@@ -41,14 +41,5 @@
 		dlg.cbM01StyleOfMark.setEnabled(true);
 
-		dlg.cbM01Kennung.removeAllItems();
-		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl()"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Oc"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Oc()"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Q"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("IQ"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Mo()"); //$NON-NLS-1$
-		dlg.cbM01Kennung.setSelectedIndex(0);
+		refreshLights();
 
 		if (keys.containsKey("name")) //$NON-NLS-1$
@@ -356,18 +347,7 @@
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		if ((getBuoyIndex() > 0) && (getStyleIndex() > 0)) {
+		if (isValid()) {
 			dlg.tfM01Name.setEnabled(true);
 			dlg.tfM01Name.setText(getName());
-			dlg.cM01TopMark.setEnabled(true);
-			dlg.cM01TopMark.setVisible(true);
-			dlg.cM01Radar.setEnabled(true);
-			dlg.cM01Radar.setVisible(true);
-			dlg.cM01Racon.setEnabled(true);
-			dlg.cM01Racon.setVisible(true);
-			dlg.cM01Fog.setEnabled(true);
-			dlg.cM01Fog.setVisible(true);
-
-			dlg.cM01Fired.setVisible(true);
-			dlg.cM01Fired.setEnabled(true);
 
 			String image = "/images/Lateral"; //$NON-NLS-1$
@@ -378,9 +358,18 @@
 
 			if (style == LAT_PERCH) {
+				dlg.cM01TopMark.setVisible(false);
+				dlg.cM01TopMark.setSelected(false);
+				dlg.cM01Radar.setVisible(false);
+				dlg.cM01Racon.setVisible(false);
+				dlg.cM01Fog.setVisible(false);
+				dlg.cM01Fired.setVisible(false);
 				dlg.cM01Fired.setSelected(false);
-				dlg.cM01TopMark.setSelected(false);
-				dlg.cM01Fired.setEnabled(false);
-				dlg.cM01TopMark.setEnabled(false);
 			} else {
+				dlg.cM01TopMark.setEnabled(true);
+				dlg.cM01TopMark.setVisible(true);
+				dlg.cM01Radar.setVisible(true);
+				dlg.cM01Racon.setVisible(true);
+				dlg.cM01Fog.setVisible(true);
+				dlg.cM01Fired.setVisible(true);
 				dlg.cM01Fired.setEnabled(true);
 				dlg.cM01TopMark.setEnabled(true);
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23086)
@@ -31,12 +31,5 @@
 		dlg.lM01CatOfMark.setVisible(true);
 
-		dlg.cbM01Kennung.removeAllItems();
-		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl()"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Oc()"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Q"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("IQ"); //$NON-NLS-1$
-		dlg.cbM01Kennung.setSelectedIndex(0);
+		refreshLights();
 
 		setLightColour();
@@ -57,11 +50,7 @@
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		if (getBuoyIndex() > 0) {
-			dlg.cM01Radar.setEnabled(true);
+		if (isValid()) {
 			dlg.cM01Radar.setVisible(true);
-			dlg.cM01Racon.setEnabled(true);
 			dlg.cM01Racon.setVisible(true);
-
-			dlg.cM01Fog.setEnabled(true);
 			dlg.cM01Fog.setVisible(true);
 
@@ -70,4 +59,33 @@
 			dlg.cM01Fired.setEnabled(false);
 			dlg.cM01Fired.setSelected(true);
+			dlg.rbM01Fired1.setVisible(true);
+			dlg.rbM01FiredN.setVisible(true);
+			dlg.lM01Kennung.setVisible(true);
+			dlg.cbM01Kennung.setVisible(true);
+			dlg.lM01Height.setVisible(true);
+			dlg.tfM01Height.setVisible(true);
+			dlg.lM01Range.setVisible(true);
+			dlg.tfM01Range.setVisible(true);
+			dlg.lM01Group.setVisible(true);
+			dlg.tfM01Group.setVisible(true);
+			dlg.lM01RepeatTime.setVisible(true);
+			dlg.tfM01RepeatTime.setVisible(true);
+			dlg.lM01Colour.setVisible(true);
+			dlg.cbM01Colour.setVisible(true);
+			if (isSectored()) {
+				dlg.lM01Sector.setVisible(true);
+				dlg.cbM01Sector.setVisible(true);
+				dlg.lM01Bearing.setVisible(true);
+				dlg.tfM01Bearing.setVisible(true);
+				dlg.tfM02Bearing.setVisible(true);
+				dlg.tfM01Radius.setVisible(true);
+			} else {
+				dlg.lM01Sector.setVisible(false);
+				dlg.cbM01Sector.setVisible(false);
+				dlg.lM01Bearing.setVisible(false);
+				dlg.tfM01Bearing.setVisible(false);
+				dlg.tfM02Bearing.setVisible(false);
+				dlg.tfM01Radius.setVisible(false);
+			}
 
 			switch (getBuoyIndex()) {
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 23086)
@@ -37,11 +37,6 @@
 		dlg.lM01StyleOfMark.setVisible(true);
 
-		dlg.cbM01Kennung.removeAllItems();
-		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Iso"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Oc"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("LFl"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Mo()"); //$NON-NLS-1$
-
+		refreshLights();
+		
 		setBuoyIndex(SAFE_WATER);
 		setColour(SeaMark.RED_WHITE);
@@ -103,4 +98,14 @@
 	}
 
+	public void refreshLights() {
+		dlg.cbM01Kennung.removeAllItems();
+		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Iso"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Oc"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("LFl"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Mo()"); //$NON-NLS-1$
+		dlg.cbM01Kennung.setSelectedIndex(0);
+	}
+	
 	public boolean isValid() {
 		return (getBuoyIndex() > 0) && (getStyleIndex() > 0);
@@ -114,18 +119,12 @@
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		if ((getBuoyIndex() > 0) && (getStyleIndex() > 0)) {
+		if (isValid()) {
 			dlg.tfM01Name.setEnabled(true);
 			dlg.tfM01Name.setText(getName());
 			dlg.cM01TopMark.setEnabled(true);
 			dlg.cM01TopMark.setVisible(true);
-			dlg.cM01Radar.setEnabled(true);
 			dlg.cM01Radar.setVisible(true);
-			dlg.cM01Racon.setEnabled(true);
 			dlg.cM01Racon.setVisible(true);
-			dlg.cM01Fired.setEnabled(true);
-
-			dlg.cM01Fog.setEnabled(true);
 			dlg.cM01Fog.setVisible(true);
-
 			dlg.cM01Fired.setVisible(true);
 			dlg.cM01Fired.setEnabled(true);
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 23085)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 23086)
@@ -39,13 +39,5 @@
 		dlg.lM01StyleOfMark.setVisible(true);
 
-		dlg.cbM01Kennung.removeAllItems();
-		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl()"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Oc"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Oc()"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Q"); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("IQ"); //$NON-NLS-1$
-		dlg.cbM01Kennung.setSelectedIndex(0);
+		refreshLights();
 
 		dlg.cM01TopMark.setEnabled(true);
@@ -148,12 +140,9 @@
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		if ((getBuoyIndex() > 0) && (getStyleIndex() > 0)) {
+		if (isValid()) {
 			dlg.tfM01Name.setEnabled(true);
 			dlg.tfM01Name.setText(getName());
-			dlg.cM01Radar.setEnabled(true);
 			dlg.cM01Radar.setVisible(true);
-			dlg.cM01Racon.setEnabled(true);
 			dlg.cM01Racon.setVisible(true);
-
 			dlg.cM01TopMark.setEnabled(true);
 			dlg.cM01TopMark.setVisible(true);
@@ -164,8 +153,5 @@
 				dlg.cbM01TopMark.setVisible(false);
 			}
-
-			dlg.cM01Fog.setEnabled(true);
 			dlg.cM01Fog.setVisible(true);
-
 			dlg.cM01Fired.setVisible(true);
 			dlg.cM01Fired.setEnabled(true);
