Index: applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23127)
+++ applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23138)
@@ -665,5 +665,6 @@
 				public void actionPerformed(java.awt.event.ActionEvent e) {
 					buoy.setSectored(rbM01FiredN.isSelected());
-					if (rbM01Fired1.isSelected()) buoy.setSectorIndex(0);
+					cbM01Sector.setSelectedIndex(0);
+					buoy.setSectorIndex(0);
 					buoy.paintSign();
 				}
@@ -1141,26 +1142,14 @@
 				public void actionPerformed(ActionEvent e) {
 					int i1, i2;
-					String g = "", c = ""; //$NON-NLS-1$ //$NON-NLS-2$
+					String c = ""; //$NON-NLS-1$ //$NON-NLS-2$
 					String it = (String) cbM01Kennung.getSelectedItem();
 
 					if (it == null)
 						return;
-					if (it.compareTo("Not set") == 0) //$NON-NLS-1$
+					if (it.compareTo(Messages.getString("SmpDialogAction.212")) == 0) //$NON-NLS-1$
 						return;
 					if (buoy == null)
 						return;
 
-					i1 = it.indexOf("("); //$NON-NLS-1$
-					i2 = it.indexOf(")", i1); //$NON-NLS-1$
-					tfM01Group.setText(""); //$NON-NLS-1$
-					tfM01Group.setEnabled(false);
-					if (i1 >= 0) {
-						c = it.substring(0, i1);
-						if (i1 >= 0) {
-							g = it.substring(i1 + 1, i2);
-							if (g.isEmpty()) //$NON-NLS-1$
-								tfM01Group.setEnabled(true);
-						}
-					}
 					if (it.contains("+")) { //$NON-NLS-1$
 						i1 = it.indexOf("+"); //$NON-NLS-1$
@@ -1174,5 +1163,4 @@
 						c = it;
 					buoy.setLightChar(c);
-					buoy.setLightGroup(g);
 					buoy.paintSign();
 				}
@@ -1293,4 +1281,5 @@
 			tfM01Bearing.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
+					buoy.setBearing1(tfM01Bearing.getText().trim());
 				}
 			});
@@ -1305,4 +1294,5 @@
 			tfM02Bearing.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
+					buoy.setBearing2(tfM02Bearing.getText().trim());
 				}
 			});
@@ -1317,4 +1307,5 @@
 			tfM01Radius.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
+					buoy.setRadius(tfM01Radius.getText().trim());
 				}
 			});
Index: applications/editors/josm/plugins/toms/src/toms/plug/PluginApp.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/plug/PluginApp.java	(revision 23127)
+++ applications/editors/josm/plugins/toms/src/toms/plug/PluginApp.java	(revision 23138)
@@ -17,12 +17,12 @@
 		String pluginDirName = Main.pref.getPluginsDirectory().getAbsolutePath();
 
-		List<Pluggable> plugins = PluginLoader.loadPlugins(new File(pluginDirName + "/tplug"));
+//!!		List<Pluggable> plugins = PluginLoader.loadPlugins(new File(pluginDirName + "/tplug"));
 
-		if(plugins == null) return;
+//!!		if(plugins == null) return;
 		
-		PluginManager manager = new PluginManagerImpl();
+//!!		PluginManager manager = new PluginManagerImpl();
 		
-		for(Pluggable p : plugins) p.setPluginManager(manager);
-		for(Pluggable p : plugins) p.start();
+//!!		for(Pluggable p : plugins) p.setPluginManager(manager);
+//!!		for(Pluggable p : plugins) p.start();
 		
 		// wait
@@ -33,5 +33,5 @@
 		}
 		
-		for(Pluggable p: plugins) p.stop();
+//!!		for(Pluggable p: plugins) p.stop();
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/plug/util/PluginLoader.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/plug/util/PluginLoader.java	(revision 23127)
+++ applications/editors/josm/plugins/toms/src/toms/plug/util/PluginLoader.java	(revision 23138)
@@ -19,14 +19,14 @@
 public class PluginLoader {
 
-	public static List<Pluggable> loadPlugins(File plugDir) throws IOException {
-		File[] plugJars = plugDir.listFiles(new JARFileFilter());
-		ClassLoader cl = new URLClassLoader(PluginLoader.fileArrayToURLArray(plugJars));
+//!!	public static List<Pluggable> loadPlugins(File plugDir) throws IOException {
+//!!		File[] plugJars = plugDir.listFiles(new JARFileFilter());
+//!!		ClassLoader cl = new URLClassLoader(PluginLoader.fileArrayToURLArray(plugJars));
 		
-		if(cl == null) return null;
+//!!		if(cl == null) return null;
 		
-		List<Class<Pluggable>> plugClasses = PluginLoader.extractClassesFromJARs(plugJars, cl);
+//!!		List<Class<Pluggable>> plugClasses = PluginLoader.extractClassesFromJARs(plugJars, cl);
 		
-		return PluginLoader.createPluggableObjects(plugClasses);
-	}
+//!!		return PluginLoader.createPluggableObjects(plugClasses);
+//!!	}
 
 	private static List<Pluggable> createPluggableObjects(List<Class<Pluggable>> pluggables) {
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java	(revision 23127)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java	(revision 23138)
@@ -34,7 +34,7 @@
 	public final static int BLACK_RED_BLACK = 10;
 	public final static int YELLOW = 11;
-	public final static int RED_LIGHT = 1;
-	public final static int GREEN_LIGHT = 2;
-	public final static int WHITE_LIGHT = 3;
+	public final static int WHITE_LIGHT = 1;
+	public final static int RED_LIGHT = 2;
+	public final static int GREEN_LIGHT = 3;
 
 	/**
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23127)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23138)
@@ -172,8 +172,12 @@
 
 	public String getLightChar() {
+		if (LightChar[getSectorIndex()] == null)
+			return (LightChar[0]);
 		return LightChar[getSectorIndex()];
 	}
 
 	public void setLightChar(String lightChar) {
+		if (getSectorIndex() == 0)
+			LightChar = new String[10];
 		LightChar[getSectorIndex()] = lightChar;
 	}
@@ -182,8 +186,12 @@
 
 	public String getLightColour() {
+		if (LightColour[getSectorIndex()] == null)
+			return (LightColour[0]);
 		return LightColour[getSectorIndex()];
 	}
 
 	public void setLightColour(String lightColour) {
+		if (getSectorIndex() == 0)
+			LightColour = new String[10];
 		LightColour[getSectorIndex()] = lightColour;
 	}
@@ -192,8 +200,12 @@
 
 	public String getLightGroup() {
+		if (LightGroup[getSectorIndex()] == null)
+			return (LightGroup[0]);
 		return LightGroup[getSectorIndex()];
 	}
 
 	public void setLightGroup(String lightGroup) {
+		if (getSectorIndex() == 0)
+			LightGroup = new String[10];
 		LightGroup[getSectorIndex()] = lightGroup;
 	}
@@ -210,8 +222,12 @@
 
 	public String getHeight() {
+		if (Height[getSectorIndex()] == null)
+			return (Height[0]);
 		return Height[getSectorIndex()];
 	}
 
 	public void setHeight(String height) {
+		if (getSectorIndex() == 0)
+			Height = new String[10];
 		Height[getSectorIndex()] = height;
 	}
@@ -220,14 +236,62 @@
 
 	public String getRange() {
+		if (Range[getSectorIndex()] == null)
+			return (Range[0]);
 		return Range[getSectorIndex()];
 	}
 
 	public void setRange(String range) {
+		if (getSectorIndex() == 0)
+			Range = new String[10];
 		Range[getSectorIndex()] = range;
 	}
 
+	private String[] Bearing1 = new String[10];
+
+	public String getBearing1() {
+		if (Bearing1[getSectorIndex()] == null)
+			return (Bearing1[0]);
+		return Bearing1[getSectorIndex()];
+	}
+
+	public void setBearing1(String bearing) {
+		if (getSectorIndex() == 0)
+			Bearing1 = new String[10];
+		Bearing1[getSectorIndex()] = bearing;
+	}
+
+	private String[] Bearing2 = new String[10];
+
+	public String getBearing2() {
+		if (Bearing2[getSectorIndex()] == null)
+			return (Bearing2[0]);
+		return Bearing2[getSectorIndex()];
+	}
+
+	public void setBearing2(String bearing) {
+		if (getSectorIndex() == 0)
+			Bearing2 = new String[10];
+		Bearing2[getSectorIndex()] = bearing;
+	}
+
+	private String[] Radius = new String[10];
+
+	public String getRadius() {
+		if (Radius[getSectorIndex()] == null)
+			return (Radius[0]);
+		return Radius[getSectorIndex()];
+	}
+
+	public void setRadius(String radius) {
+		if (getSectorIndex() == 0)
+			Radius = new String[10];
+		Radius[getSectorIndex()] = radius;
+	}
+
 	private String[] LightPeriod = new String[10];
 
 	public String getLightPeriod() {
+		if (LightPeriod[getSectorIndex()] == null)
+			return (LightPeriod[0]);
 		return LightPeriod[getSectorIndex()];
 	}
@@ -249,4 +313,6 @@
 			}
 		}
+		if (getSectorIndex() == 0)
+			LightPeriod = new String[10];
 		LightPeriod[getSectorIndex()] = lightPeriod;
 	}
@@ -319,4 +385,7 @@
 		if (dlg.paintlock)
 			return;
+		else
+			dlg.paintlock = true;
+
 		dlg.lM01Icon.setIcon(null);
 		dlg.lM02Icon.setIcon(null);
@@ -390,27 +459,23 @@
 
 				String col = getLightColour();
-				if (col.equals("W"))
+				if (col.equals("W")) {
 					dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
 							"/images/Light_White_120.png")));
-				else if (col.equals("R"))
+					dlg.cbM01Colour.setSelectedIndex(WHITE_LIGHT);
+				} else if (col.equals("R")) {
 					dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
 							"/images/Light_Red_120.png")));
-				else if (col.equals("G"))
+					dlg.cbM01Colour.setSelectedIndex(RED_LIGHT);
+				} else if (col.equals("G")) {
 					dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
 							"/images/Light_Green_120.png")));
-				else
+					dlg.cbM01Colour.setSelectedIndex(GREEN_LIGHT);
+				} else {
 					dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
 							"/images/Light_Magenta_120.png")));
-
-				dlg.cbM01Kennung.setEnabled(true);
+					dlg.cbM01Colour.setSelectedIndex(UNKNOWN_COLOUR);
+				}
 
 				c = getLightChar();
-				if (dlg.cbM01Kennung.getSelectedIndex() == 0) {
-					dlg.tfM01Group.setEnabled(false);
-					dlg.tfM01RepeatTime.setEnabled(false);
-				} else {
-					dlg.tfM01Group.setEnabled(true);
-					dlg.tfM01RepeatTime.setEnabled(true);
-				}
 
 				if (c.contains("+")) {
@@ -432,6 +497,4 @@
 
 				dlg.cM01Fired.setVisible(true);
-				dlg.cM01Fired.setEnabled(false);
-				dlg.cM01Fired.setSelected(true);
 				dlg.lM01Kennung.setVisible(true);
 				dlg.cbM01Kennung.setVisible(true);
@@ -441,11 +504,57 @@
 				dlg.tfM01RepeatTime.setVisible(true);
 				if (isSectored()) {
+					if ((getSectorIndex() != 0) && (!LightChar[0].isEmpty()))
+						dlg.cbM01Kennung.setEnabled(false);
+					else
+						dlg.cbM01Kennung.setEnabled(true);
+					dlg.cbM01Kennung.setSelectedItem(getLightChar());
+					if ((getSectorIndex() != 0) && (!LightGroup[0].isEmpty()))
+						dlg.tfM01Group.setEnabled(false);
+					else
+						dlg.tfM01Group.setEnabled(true);
+					dlg.tfM01Group.setText(getLightGroup());
+					if ((getSectorIndex() != 0) && (!LightPeriod[0].isEmpty()))
+						dlg.tfM01RepeatTime.setEnabled(false);
+					else
+						dlg.tfM01RepeatTime.setEnabled(true);
+					dlg.tfM01RepeatTime.setText(getLightPeriod());
+					if ((getSectorIndex() != 0) && (!Height[0].isEmpty()))
+						dlg.tfM01Height.setEnabled(false);
+					else
+						dlg.tfM01Height.setEnabled(true);
+					dlg.tfM01Height.setText(getHeight());
+					if ((getSectorIndex() != 0) && (!Range[0].isEmpty()))
+						dlg.tfM01Range.setEnabled(false);
+					else
+						dlg.tfM01Range.setEnabled(true);
+					dlg.tfM01Range.setText(getRange());
 					dlg.lM01Sector.setVisible(true);
 					dlg.cbM01Sector.setVisible(true);
-					dlg.lM01Bearing.setVisible(true);
-					dlg.tfM01Bearing.setVisible(true);
-					dlg.tfM02Bearing.setVisible(true);
-					dlg.tfM01Radius.setVisible(true);
+					if (getSectorIndex() == 0) {
+						dlg.lM01Colour.setVisible(false);
+						dlg.cbM01Colour.setVisible(false);
+						dlg.lM01Bearing.setVisible(false);
+						dlg.tfM01Bearing.setVisible(false);
+						dlg.tfM02Bearing.setVisible(false);
+						dlg.tfM01Radius.setVisible(false);
+					} else {
+						dlg.lM01Colour.setVisible(true);
+						dlg.cbM01Colour.setVisible(true);
+						dlg.lM01Bearing.setVisible(true);
+						dlg.tfM01Bearing.setVisible(true);
+						dlg.tfM01Bearing.setText(getBearing1());
+						dlg.tfM02Bearing.setVisible(true);
+						dlg.tfM02Bearing.setText(getBearing2());
+						dlg.tfM01Radius.setVisible(true);
+						dlg.tfM01Radius.setText(getRadius());
+					}
 				} else {
+					dlg.cbM01Kennung.setEnabled(true);
+					dlg.tfM01Group.setEnabled(true);
+					dlg.tfM01RepeatTime.setEnabled(true);
+					dlg.tfM01Height.setEnabled(true);
+					dlg.tfM01Range.setEnabled(true);
+					dlg.lM01Colour.setVisible(true);
+					dlg.cbM01Colour.setVisible(true);
 					dlg.lM01Sector.setVisible(false);
 					dlg.cbM01Sector.setVisible(false);
@@ -495,4 +604,5 @@
 			dlg.tfM01Radius.setVisible(false);
 		}
+		dlg.paintlock = false;
 	}
 
@@ -696,7 +806,8 @@
 		setFired(false);
 		dlg.rbM01Fired1.setVisible(false);
+		dlg.rbM01Fired1.setSelected(true);
 		dlg.rbM01FiredN.setVisible(false);
+		dlg.rbM01FiredN.setSelected(false);
 		setSectored(false);
-		setSectorIndex(0);
 		dlg.cbM01Kennung.removeAllItems();
 		dlg.cbM01Kennung.setVisible(false);
@@ -716,4 +827,5 @@
 		dlg.cbM01Sector.setVisible(false);
 		dlg.lM01Sector.setVisible(false);
+		setSectorIndex(0);
 		dlg.tfM01Group.setText("");
 		dlg.tfM01Group.setVisible(false);
@@ -727,8 +839,11 @@
 		dlg.tfM01Bearing.setVisible(false);
 		dlg.lM01Bearing.setVisible(false);
+		setBearing1("");
 		dlg.tfM02Bearing.setText("");
 		dlg.tfM02Bearing.setVisible(false);
+		setBearing2("");
 		dlg.tfM01Radius.setText("");
 		dlg.tfM01Radius.setVisible(false);
+		setRadius("");
 
 		dlg.bM01Save.setEnabled(false);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23127)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23138)
@@ -36,4 +36,6 @@
 		setTopMark(false);
 		setFired(true);
+		dlg.cM01Fired.setEnabled(false);
+		dlg.cM01Fired.setSelected(true);
 	}
 
@@ -60,6 +62,4 @@
 			dlg.lM01Range.setVisible(true);
 			dlg.tfM01Range.setVisible(true);
-			dlg.lM01Colour.setVisible(true);
-			dlg.cbM01Colour.setVisible(true);
 
 			switch (getBuoyIndex()) {
