Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23059)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23060)
@@ -301,4 +301,14 @@
 			int i1;
 
+			String col = getLightColour();
+			if (col.equals("W"))
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_120.png")));
+			else if (col.equals("R"))
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Red_120.png")));
+			else if (col.equals("G"))
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Green_120.png")));
+			else
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Magenta_120.png")));
+	
 			dlg.cbM01Kennung.setEnabled(true);
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 23059)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 23060)
@@ -24,5 +24,5 @@
 		keys = node.getKeys();
 		setNode(node);
-		
+
 		resetMask();
 		dlg.cbM01CatOfMark.setEnabled(true);
@@ -188,101 +188,76 @@
 
 	public void paintSign() {
-		if (dlg.paintlock) return;
+		if (dlg.paintlock)
+			return;
 		super.paintSign();
 
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		dlg.tfM01Name.setEnabled(true);
-		dlg.tfM01Name.setText(getName());
-
-		dlg.cM01TopMark.setSelected(true);
-		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);
-		dlg.cM01Fired.setVisible(true);
-
-		String image = "/images/Cardinal";
-
-		switch (getStyleIndex()) {
-		case SeaMark.CARD_PILLAR:
-			image += "_Pillar";
-			break;
-
-		case SeaMark.CARD_SPAR:
-			image += "_Spar";
-			break;
-
-		case SeaMark.CARD_BEACON:
-			image += "_Beacon";
-			break;
-
-		case SeaMark.CARD_TOWER:
-			image += "_Tower";
-			break;
-
-		case SeaMark.CARD_FLOAT:
-			image += "_Float";
-			break;
-
-		default:
-			return;
-		}
-
-		switch (getBuoyIndex()) {
-		case CARD_NORTH:
-			image += "_North";
-			break;
-		case CARD_EAST:
-			image += "_East";
-			break;
-		case CARD_SOUTH:
-			image += "_South";
-			break;
-		case CARD_WEST:
-			image += "_West";
-			break;
-		default:
-			return;
-		}
-
-		if (!image.equals("/images/Cardinal")) {
-			image += ".png";
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
-			
-			if (isFired()) {
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_120.png")));
-
-				if (getLightChar() != "") {
-					String tmp = null;
-					String c;
-					int i1;
-
-					c = getLightChar();
-					if (c.contains("+")) {
-						i1 = c.indexOf("+");
-						tmp = c.substring(i1, c.length());
-						c = c.substring(0, i1);
-					}
-
-					if (getLightGroup() != "")
-						c = c + "(" + getLightGroup() + ")";
-					if (tmp != null)
-						c = c + tmp;
-
-					dlg.cbM01Kennung.setSelectedItem(c);
-					if (dlg.cbM01Kennung.getSelectedItem().equals("Not set"))
-						c = "";
-				}
-			}
-
-		} else
-			dlg.lM01Icon.setIcon(null);
+		if ((getBuoyIndex() != 0) && (getStyleIndex() != 0)) {
+			dlg.tfM01Name.setEnabled(true);
+			dlg.tfM01Name.setText(getName());
+			dlg.cM01TopMark.setSelected(true);
+			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);
+			dlg.cM01Fired.setVisible(true);
+
+			String image = "/images/Cardinal";
+
+			switch (getStyleIndex()) {
+			case SeaMark.CARD_PILLAR:
+				image += "_Pillar";
+				break;
+
+			case SeaMark.CARD_SPAR:
+				image += "_Spar";
+				break;
+
+			case SeaMark.CARD_BEACON:
+				image += "_Beacon";
+				break;
+
+			case SeaMark.CARD_TOWER:
+				image += "_Tower";
+				break;
+
+			case SeaMark.CARD_FLOAT:
+				image += "_Float";
+				break;
+
+			default:
+				return;
+			}
+
+			switch (getBuoyIndex()) {
+			case CARD_NORTH:
+				image += "_North";
+				break;
+			case CARD_EAST:
+				image += "_East";
+				break;
+			case CARD_SOUTH:
+				image += "_South";
+				break;
+			case CARD_WEST:
+				image += "_West";
+				break;
+			default:
+				return;
+			}
+
+			if (!image.equals("/images/Cardinal")) {
+				image += ".png";
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 23059)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 23060)
@@ -104,62 +104,52 @@
 
 	public void paintSign() {
-		if (dlg.paintlock) return;
+		if (dlg.paintlock)
+			return;
 		super.paintSign();
 
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		dlg.tfM01Name.setEnabled(true);
-		dlg.tfM01Name.setText(getName());
-		dlg.cM01TopMark.setEnabled(false);
-		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/Cardinal";
-
-		switch (getStyleIndex()) {
-		case ISOL_PILLAR:
-			image += "_Pillar_Single";
-			break;
-		case ISOL_SPAR:
-			image += "_Spar_Single";
-			break;
-		case ISOL_BEACON:
-			image += "_Beacon_Single";
-			break;
-		case ISOL_TOWER:
-			image += "_Tower_Single";
-			break;
-		case ISOL_FLOAT:
-			image += "_Float_Single";
-			break;
-		default:
-		}
-
-		if (!image.equals("/images/Cardinal")) {
-			image += ".png";
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
-
-			if (isFired()) {
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
-						"/images/Light_White_120.png")));
-				if (getLightChar() != "") {
-					String c;
-
-					c = getLightChar();
-					if (getLightGroup() != "")
-						c = c + "(" + getLightGroup() + ")";
-					dlg.cbM01Kennung.setSelectedItem(c);
-				}
+		if ((getBuoyIndex() != 0) && (getStyleIndex() != 0)) {
+			dlg.tfM01Name.setEnabled(true);
+			dlg.tfM01Name.setText(getName());
+			dlg.cM01TopMark.setEnabled(false);
+			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/Cardinal";
+
+			switch (getStyleIndex()) {
+			case ISOL_PILLAR:
+				image += "_Pillar_Single";
+				break;
+			case ISOL_SPAR:
+				image += "_Spar_Single";
+				break;
+			case ISOL_BEACON:
+				image += "_Beacon_Single";
+				break;
+			case ISOL_TOWER:
+				image += "_Tower_Single";
+				break;
+			case ISOL_FLOAT:
+				image += "_Float_Single";
+				break;
+			default:
 			}
-		} else
-			dlg.lM01Icon.setIcon(null);
+
+			if (!image.equals("/images/Cardinal")) {
+				image += ".png";
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23059)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 23060)
@@ -22,5 +22,5 @@
 		keys = node.getKeys();
 		setNode(node);
-		
+
 		resetMask();
 
@@ -345,279 +345,264 @@
 
 	public void paintSign() {
-		if (dlg.paintlock) return;
+		if (dlg.paintlock)
+			return;
 		super.paintSign();
 
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		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";
-
-		int cat = getBuoyIndex();
-		boolean region = getRegion();
-		int style = getStyleIndex();
-
-		if (style == LAT_PERCH) {
-			dlg.cM01Fired.setSelected(false);
-			dlg.cM01TopMark.setSelected(false);
-			dlg.cM01Fired.setEnabled(false);
-			dlg.cM01TopMark.setEnabled(false);
-		} else {
+		if ((getBuoyIndex() != 0) && (getStyleIndex() != 0)) {
+			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);
-			dlg.cM01TopMark.setEnabled(true);
-		}
-
-		switch (getBuoyIndex()) {
-		case PORT_HAND:
-			if (region == IALA_A)
-				switch (style) {
-				case LAT_CAN:
-					image += "_Can_Red";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Red";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Red";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Red";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Red";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Red";
-					break;
-				case LAT_PERCH:
-					image += "_Perch_Port";
-					break;
-				default:
-				}
-			else
-				switch (style) {
-				case LAT_CAN:
-					image += "_Can_Green";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Green";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Green";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Green";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Green";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Green";
-					break;
-				case LAT_PERCH:
-					image += "_Perch_Port";
-					break;
-				default:
-				}
-			break;
-
-		case STARBOARD_HAND:
-			if (region == IALA_A)
-				switch (style) {
-				case LAT_CONE:
-					image += "_Cone_Green";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Green";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Green";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Green";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Green";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Green";
-					break;
-				case LAT_PERCH:
-					image += "_Perch_Starboard";
-					break;
-				default:
-				}
-			else
-				switch (style) {
-				case LAT_CONE:
-					image += "_Cone_Red";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Red";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Red";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Red";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Red";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Red";
-					break;
-				case LAT_PERCH:
-					image += "_Perch_Starboard";
-					break;
-				default:
-				}
-			break;
-
-		case PREF_PORT_HAND:
-			if (region == IALA_A)
-				switch (style) {
-				case LAT_CAN:
-					image += "_Can_Red_Green_Red";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Red_Green_Red";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Red_Green_Red";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Red_Green_Red";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Red_Green_Red";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Red_Green_Red";
-					break;
-				default:
-				}
-			else
-				switch (style) {
-				case LAT_CAN:
-					image += "_Can_Green_Red_Green";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Green_Red_Green";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Green_Red_Green";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Green_Red_Green";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Green_Red_Green";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Green_Red_Green";
-					break;
-				default:
-				}
-			break;
-
-		case PREF_STARBOARD_HAND:
-			if (region == IALA_A)
-				switch (style) {
-				case LAT_CONE:
-					image += "_Cone_Green_Red_Green";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Green_Red_Green";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Green_Red_Green";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Green_Red_Green";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Green_Red_Green";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Green_Red_Green";
-					break;
-				default:
-				}
-			else
-				switch (style) {
-				case LAT_CONE:
-					image += "_Cone_Red_Green_Red";
-					break;
-				case LAT_PILLAR:
-					image += "_Pillar_Red_Green_Red";
-					break;
-				case LAT_SPAR:
-					image += "_Spar_Red_Green_Red";
-					break;
-				case LAT_BEACON:
-					image += "_Beacon_Red_Green_Red";
-					break;
-				case LAT_TOWER:
-					image += "_Tower_Red_Green_Red";
-					break;
-				case LAT_FLOAT:
-					image += "_Float_Red_Green_Red";
-					break;
-				default:
-				}
-			break;
-
-		default:
-		}
-
-		if (!image.equals("/images/Lateral")) {
-
-			if (hasTopMark()) {
-				if (cat == PORT_HAND || cat == PREF_PORT_HAND)
-					image += "_Can";
+
+			String image = "/images/Lateral";
+
+			int cat = getBuoyIndex();
+			boolean region = getRegion();
+			int style = getStyleIndex();
+
+			if (style == LAT_PERCH) {
+				dlg.cM01Fired.setSelected(false);
+				dlg.cM01TopMark.setSelected(false);
+				dlg.cM01Fired.setEnabled(false);
+				dlg.cM01TopMark.setEnabled(false);
+			} else {
+				dlg.cM01Fired.setEnabled(true);
+				dlg.cM01TopMark.setEnabled(true);
+			}
+
+			switch (getBuoyIndex()) {
+			case PORT_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Red";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red";
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Port";
+						break;
+					default:
+					}
 				else
-					image += "_Cone";
-			}
-			image += ".png";
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
-
-			if (hasRadar()) {
-				dlg.lM03Icon.setIcon(new ImageIcon(getClass().getResource("/images/Radar_Reflector.png")));
-			}
-			
-			if (isFired())
-				if (getLightColour().equals("R"))
-					dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
-							"/images/Light_Red_120.png")));
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Green";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green";
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Port";
+						break;
+					default:
+					}
+				break;
+
+			case STARBOARD_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Green";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green";
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Starboard";
+						break;
+					default:
+					}
 				else
-					dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
-							"/images/Light_Green_120.png")));
-			if (getLightChar() != "") {
-				String c;
-
-				c = getLightChar();
-				if (getLightGroup() != "")
-					c = c + "(" + getLightGroup() + ")";
-
-				dlg.cbM01Kennung.setSelectedItem(c);
-				if (dlg.cbM01Kennung.getSelectedItem().equals("Not set"))
-					c = "";
-			}
-
-		} else
-			dlg.lM01Icon.setIcon(null);
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Red";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red";
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Starboard";
+						break;
+					default:
+					}
+				break;
+
+			case PREF_PORT_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Red_Green_Red";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red_Green_Red";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red_Green_Red";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red_Green_Red";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red_Green_Red";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red_Green_Red";
+						break;
+					default:
+					}
+				else
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Green_Red_Green";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green_Red_Green";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green_Red_Green";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green_Red_Green";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green_Red_Green";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green_Red_Green";
+						break;
+					default:
+					}
+				break;
+
+			case PREF_STARBOARD_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Green_Red_Green";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green_Red_Green";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green_Red_Green";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green_Red_Green";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green_Red_Green";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green_Red_Green";
+						break;
+					default:
+					}
+				else
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Red_Green_Red";
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red_Green_Red";
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red_Green_Red";
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red_Green_Red";
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red_Green_Red";
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red_Green_Red";
+						break;
+					default:
+					}
+				break;
+
+			default:
+			}
+
+			if (!image.equals("/images/Lateral")) {
+
+				if (hasTopMark()) {
+					if (cat == PORT_HAND || cat == PREF_PORT_HAND)
+						image += "_Can";
+					else
+						image += "_Cone";
+				}
+				image += ".png";
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+
+				if (hasRadar()) {
+					dlg.lM03Icon.setIcon(new ImageIcon(getClass().getResource(
+							"/images/Radar_Reflector.png")));
+				}
+
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23059)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 23060)
@@ -18,10 +18,10 @@
 	public BuoyNota(SmpDialogAction dia, Node node) {
 		super(dia);
-		
+
 		String str;
 		Map<String, String> keys;
 		keys = node.getKeys();
 		setNode(node);
-		
+
 		resetMask();
 
@@ -41,5 +41,4 @@
 		setLightColour();
 
-		setFired(true);
 		setTopMark(false);
 		paintSign();
@@ -47,40 +46,43 @@
 
 	public void paintSign() {
-		if (dlg.paintlock) return;
+		if (dlg.paintlock)
+			return;
 		super.paintSign();
 
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		dlg.cM01Radar.setEnabled(true);
-		dlg.cM01Radar.setVisible(true);
-		dlg.cM01Racon.setEnabled(true);
-		dlg.cM01Racon.setVisible(true);
+		if (getBuoyIndex() != 0) {
+			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.cM01Fog.setEnabled(true);
+			dlg.cM01Fog.setVisible(true);
 
-		dlg.cM01Fired.setVisible(true);
-		dlg.cM01Fired.setEnabled(false);
-		dlg.cM01Fired.setSelected(true);
+			setFired(true);
+			dlg.cM01Fired.setVisible(true);
+			dlg.cM01Fired.setEnabled(false);
+			dlg.cM01Fired.setSelected(true);
 
-		switch (getBuoyIndex()) {
-		case SeaMark.LIGHT_HOUSE:
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
-					"/images/Light_House.png")));
-			break;
+			switch (getBuoyIndex()) {
+			case SeaMark.LIGHT_HOUSE:
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_House.png")));
+				break;
 
-		case SeaMark.LIGHT_MAJOR:
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
-					"/images/Light_Major.png")));
-			break;
+			case SeaMark.LIGHT_MAJOR:
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_Major.png")));
+				break;
 
-		case SeaMark.LIGHT_MINOR:
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
-					"/images/Light_Minor.png")));
-			break;
+			case SeaMark.LIGHT_MINOR:
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_Minor.png")));
+				break;
 
-		default:
+			default:
+			}
 		}
-
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 23059)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 23060)
@@ -16,5 +16,5 @@
 
 public class BuoySaw extends Buoy {
-	public BuoySaw(SmpDialogAction dia,  Node node) {
+	public BuoySaw(SmpDialogAction dia, Node node) {
 		super(dia);
 
@@ -23,5 +23,5 @@
 		keys = node.getKeys();
 		setNode(node);
-		
+
 		resetMask();
 
@@ -98,71 +98,61 @@
 		if (keys.containsKey("seamark:topmark:shape")
 				|| keys.containsKey("seamark:topmark:colour")) {
-				setTopMark(true);
+			setTopMark(true);
 		}
 	}
 
 	public void paintSign() {
-		if (dlg.paintlock) return;
+		if (dlg.paintlock)
+			return;
 		super.paintSign();
 
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		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);
-
-		String image = "/images/Safe_Water";
-
-		switch (getStyleIndex()) {
-		case SAFE_PILLAR:
-			image += "_Pillar";
-			break;
-		case SAFE_SPAR:
-			image += "_Spar";
-			break;
-		case SAFE_SPHERE:
-			image += "_Sphere";
-			break;
-		case SAFE_BEACON:
-			image += "_Beacon";
-			break;
-		case SAFE_FLOAT:
-			image += "_Float";
-			break;
-		default:
-		}
-
-		if (!image.equals("/images/Safe_Water")) {
-			if (hasTopMark())
+		if ((getBuoyIndex() != 0) && (getStyleIndex() != 0)) {
+			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);
+
+			String image = "/images/Safe_Water";
+
+			switch (getStyleIndex()) {
+			case SAFE_PILLAR:
+				image += "_Pillar";
+				break;
+			case SAFE_SPAR:
+				image += "_Spar";
+				break;
+			case SAFE_SPHERE:
 				image += "_Sphere";
-			image += ".png";
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
-
-			if (isFired()) {
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_120.png")));
-				if (getLightChar() != "") {
-					String c;
-
-					c = getLightChar();
-
-					dlg.cbM01Kennung.setSelectedItem(c);
-					if (dlg.cbM01Kennung.getSelectedItem().equals("Not set"))
-						c = "";
-				}
+				break;
+			case SAFE_BEACON:
+				image += "_Beacon";
+				break;
+			case SAFE_FLOAT:
+				image += "_Float";
+				break;
+			default:
 			}
-		} else
-			dlg.lM01Icon.setIcon(null);
+
+			if (!image.equals("/images/Safe_Water")) {
+				if (hasTopMark())
+					image += "_Sphere";
+				image += ".png";
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 23059)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 23060)
@@ -137,91 +137,79 @@
 
 	public void paintSign() {
-		if (dlg.paintlock) return;
+		if (dlg.paintlock)
+			return;
 		super.paintSign();
 
 		dlg.sM01StatusBar.setText(getErrMsg());
 
-		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);
-		if (hasTopMark()) {
-			dlg.cbM01TopMark.setEnabled(true);
-			dlg.cbM01TopMark.setVisible(true);
-		} else {
-			dlg.cbM01TopMark.setVisible(false);
-		}
-
-		dlg.cM01Fog.setEnabled(true);
-		dlg.cM01Fog.setVisible(true);
-
-		dlg.cM01Fired.setVisible(true);
-		dlg.cM01Fired.setEnabled(true);
-
-		String image = "/images/Special_Purpose";
+		if ((getBuoyIndex() != 0) && (getStyleIndex() != 0)) {
+			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);
+			if (hasTopMark()) {
+				dlg.cbM01TopMark.setEnabled(true);
+				dlg.cbM01TopMark.setVisible(true);
+			} else {
+				dlg.cbM01TopMark.setVisible(false);
+			}
+
+			dlg.cM01Fog.setEnabled(true);
+			dlg.cM01Fog.setVisible(true);
+
+			dlg.cM01Fired.setVisible(true);
+			dlg.cM01Fired.setEnabled(true);
+
+			String image = "/images/Special_Purpose";
+
+			switch (getStyleIndex()) {
+			case SPEC_PILLAR:
+				image += "_Pillar";
+				break;
+			case SPEC_SPAR:
+				image += "_Spar";
+				break;
+			case SPEC_SPHERE:
+				image += "_Sphere";
+				break;
+			case SPEC_BARREL:
+				image += "_Barrel";
+				break;
+			case SPEC_FLOAT:
+				image += "_Float";
+				break;
+			case SPEC_BEACON:
+				image += "_Beacon";
+				break;
+			case SPEC_TOWER:
+				image += "_Tower";
+				break;
+			default:
+			}
+
+			if (!image.equals("/images/Special_Purpose")) {
+				if (hasTopMark())
+					image += "_CrossY";
+				image += ".png";
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
+	}
+
+	public void saveSign() {
+		Node node = getNode();
+
+		if (node == null) {
+			return;
+		}
 
 		switch (getStyleIndex()) {
 		case SPEC_PILLAR:
-			image += "_Pillar";
-			break;
-		case SPEC_SPAR:
-			image += "_Spar";
-			break;
-		case SPEC_SPHERE:
-			image += "_Sphere";
-			break;
-		case SPEC_BARREL:
-			image += "_Barrel";
-			break;
-		case SPEC_FLOAT:
-			image += "_Float";
-			break;
-		case SPEC_BEACON:
-			image += "_Beacon";
-			break;
-		case SPEC_TOWER:
-			image += "_Tower";
-			break;
-		default:
-		}
-
-		if (!image.equals("/images/Special_Purpose")) {
-			if (hasTopMark())
-				image += "_CrossY";
-			image += ".png";
-			dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
-
-			if (isFired()) {
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
-						"/images/Light_White_120.png")));
-				if (getLightChar() != "") {
-					String c;
-
-					c = getLightChar();
-
-					dlg.cbM01Kennung.setSelectedItem(c);
-					if (dlg.cbM01Kennung.getSelectedItem().equals("Not set"))
-						c = "";
-				}
-			}
-		} else
-			dlg.lM01Icon.setIcon(null);
-	}
-
-
-	public void saveSign() {
-		Node node = getNode();
-
-		if (node == null) {
-			return;
-		}
-
-		switch (getStyleIndex()) {
-		case SPEC_PILLAR:
 			super.saveSign("buoy_special_purpose");
 			Main.main.undoRedo.add(new ChangePropertyCommand(node,
