Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 24896)
@@ -19,4 +19,5 @@
 import oseam.Messages;
 import oseam.seamarks.SeaMark;
+import oseam.seamarks.SeaMark.Obj;
 import oseam.seamarks.MarkCard;
 import oseam.seamarks.MarkIsol;
@@ -100,16 +101,37 @@
 		if (keys.containsKey("seamark:type"))
 			type = keys.get("seamark:type");
-		if (type.equals("buoy_lateral") || type.equals("beacon_lateral")) {
-			mark = new MarkLat(this);
-		} else if (type.equals("buoy_cardinal") || type.equals("beacon_cardinal")) {
-			mark = new MarkCard(this);
-		} else if (type.equals("buoy_safe_water") || type.equals("beacon_safe_water")) {
-			mark = new MarkSaw(this);
-		} else if (type.equals("buoy_special_purpose") || type.equals("beacon_special_purpose")) {
-			mark = new MarkSpec(this);
-		} else if (type.equals("buoy_isolated_danger") || type.equals("beacon_isolated_danger")) {
-			mark = new MarkIsol(this);
+		if (type.equals("buoy_lateral")) {
+			mark = new MarkLat(this);
+			mark.setObject(Obj.BOYLAT);
+		} else if (type.equals("beacon_lateral")) {
+			mark = new MarkLat(this);
+			mark.setObject(Obj.BCNLAT);
+		} else if (type.equals("buoy_cardinal")) {
+			mark = new MarkCard(this);
+			mark.setObject(Obj.BOYCAR);
+		} else if (type.equals("beacon_cardinal")) {
+			mark = new MarkCard(this);
+			mark.setObject(Obj.BCNCAR);
+		} else if (type.equals("buoy_safe_water")) {
+			mark = new MarkSaw(this);
+			mark.setObject(Obj.BOYSAW);
+		} else if (type.equals("beacon_safe_water")) {
+			mark = new MarkSaw(this);
+			mark.setObject(Obj.BCNSAW);
+		} else if (type.equals("buoy_special_purpose")) {
+			mark = new MarkSpec(this);
+			mark.setObject(Obj.BOYSPP);
+		} else if (type.equals("beacon_special_purpose")) {
+			mark = new MarkSpec(this);
+			mark.setObject(Obj.BCNSPP);
+		} else if (type.equals("buoy_isolated_danger")) {
+			mark = new MarkIsol(this);
+			mark.setObject(Obj.BOYISD);
+		} else if (type.equals("beacon_isolated_danger")) {
+			mark = new MarkIsol(this);
+			mark.setObject(Obj.BCNISD);
 		} else if (type.equals("landmark") || type.equals("light_vessel") || type.equals("light_major") || type.equals("light_minor")) {
 			mark = new MarkLight(this);
+			mark.setObject(Obj.LIGHTS);
 		} else if (type.equals("light_float")) {
 			if (keys.containsKey("seamark:light_float:colour")) {
@@ -117,13 +139,18 @@
 				if (str.equals("red") || str.equals("green") || str.equals("red;green;red") || str.equals("green;red;green")) {
 					mark = new MarkLat(this);
+					mark.setObject(Obj.BOYLAT);
 				} else if (str.equals("black;yellow") || str.equals("black;yellow;black") || str.equals("yellow;black")
 						|| str.equals("yellow;black;yellow")) {
 					mark = new MarkCard(this);
+					mark.setObject(Obj.BOYCAR);
 				} else if (str.equals("black;red;black")) {
 					mark = new MarkIsol(this);
+					mark.setObject(Obj.BOYISD);
 				} else if (str.equals("red;white")) {
 					mark = new MarkSaw(this);
+					mark.setObject(Obj.BOYSAW);
 				} else if (str.equals("yellow")) {
 					mark = new MarkSpec(this);
+					mark.setObject(Obj.BOYSPP);
 				}
 			} else if (keys.containsKey("seamark:light_float:topmark:shape")) {
@@ -131,4 +158,5 @@
 				if (str.equals("cylinder") || str.equals("cone, point up")) {
 					mark = new MarkLat(this);
+					mark.setObject(Obj.BOYLAT);
 				}
 			} else if (keys.containsKey("seamark:light_float:topmark:colour")) {
@@ -136,36 +164,37 @@
 				if (str.equals("red") || str.equals("green")) {
 					mark = new MarkLat(this);
+					mark.setObject(Obj.BOYLAT);
 				}
 			}
-		} else if (keys.containsKey("buoy_lateral:category") || keys.containsKey("beacon_lateral:category")) {
-			mark = new MarkLat(this);
-		} else if (keys.containsKey("buoy_cardinal:category") || keys.containsKey("beacon_cardinal:category")) {
-			mark = new MarkCard(this);
-		} else if (keys.containsKey("buoy_isolated_danger:category") || keys.containsKey("beacon_isolated_danger:category")) {
-			mark = new MarkIsol(this);
-		} else if (keys.containsKey("buoy_safe_water:category") || keys.containsKey("beacon_safe_water:category")) {
-			mark = new MarkSaw(this);
-		} else if (keys.containsKey("buoy_special_purpose:category") || keys.containsKey("beacon_special_purpose:category")) {
-			mark = new MarkSpec(this);
-		} else if (keys.containsKey("buoy_lateral:shape") || keys.containsKey("beacon_lateral:shape")) {
-			mark = new MarkLat(this);
-		} else if (keys.containsKey("buoy_cardinal:shape") || keys.containsKey("beacon_cardinal:shape")) {
-			mark = new MarkCard(this);
-		} else if (keys.containsKey("buoy_isolated_danger:shape") || keys.containsKey("beacon_isolated_danger:shape")) {
-			mark = new MarkIsol(this);
-		} else if (keys.containsKey("buoy_safe_water:shape") || keys.containsKey("beacon_safe_water:shape")) {
-			mark = new MarkSaw(this);
-		} else if (keys.containsKey("buoy_special_purpose:shape") || keys.containsKey("beacon_special_purpose:shape")) {
-			mark = new MarkSpec(this);
-		} else if (keys.containsKey("buoy_lateral:colour") || keys.containsKey("beacon_lateral:colour")) {
-			mark = new MarkLat(this);
-		} else if (keys.containsKey("buoy_cardinal:colour") || keys.containsKey("beacon_cardinal:colour")) {
-			mark = new MarkCard(this);
-		} else if (keys.containsKey("buoy_isolated_danger:colour") || keys.containsKey("beacon_isolated_danger:colour")) {
-			mark = new MarkIsol(this);
-		} else if (keys.containsKey("buoy_safe_water:colour") || keys.containsKey("beacon_safe_water:colour")) {
-			mark = new MarkSaw(this);
-		} else if (keys.containsKey("buoy_special_purpose:colour") || keys.containsKey("beacon_special_purpose:colour")) {
-			mark = new MarkSpec(this);
+		} else if (keys.containsKey("buoy_lateral:category") || keys.containsKey("buoy_lateral:shape") || keys.containsKey("buoy_lateral:colour")) {
+			mark = new MarkLat(this);
+			mark.setObject(Obj.BOYLAT);
+		} else if (keys.containsKey("beacon_lateral:category") || keys.containsKey("beacon_lateral:shape") || keys.containsKey("beacon_lateral:colour")) {
+			mark = new MarkLat(this);
+			mark.setObject(Obj.BCNLAT);
+		} else if (keys.containsKey("buoy_cardinal:category") || keys.containsKey("buoy_cardinal:shape") || keys.containsKey("buoy_cardinal:colour")) {
+			mark = new MarkCard(this);
+			mark.setObject(Obj.BOYCAR);
+		} else if (keys.containsKey("beacon_cardinal:category") || keys.containsKey("beacon_cardinal:shape") || keys.containsKey("beacon_cardinal:colour")) {
+			mark = new MarkCard(this);
+			mark.setObject(Obj.BCNCAR);
+		} else if (keys.containsKey("buoy_isolated_danger:category") || keys.containsKey("buoy_isolated_danger:shape") || keys.containsKey("buoy_isolated_danger:colour")) {
+			mark = new MarkIsol(this);
+			mark.setObject(Obj.BOYISD);
+		} else if (keys.containsKey("beacon_isolated_danger:category") || keys.containsKey("beacon_isolated_danger:shape") || keys.containsKey("beacon_isolated_danger:colour")) {
+			mark = new MarkIsol(this);
+			mark.setObject(Obj.BCNISD);
+		} else if (keys.containsKey("buoy_safe_water:category") || keys.containsKey("buoy_safe_water:shape") || keys.containsKey("buoy_safe_water:colour")) {
+			mark = new MarkSaw(this);
+			mark.setObject(Obj.BOYSAW);
+		} else if (keys.containsKey("beacon_safe_water:category") || keys.containsKey("beacon_safe_water:shape") || keys.containsKey("beacon_safe_water:colour")) {
+			mark = new MarkSaw(this);
+			mark.setObject(Obj.BCNSAW);
+		} else if (keys.containsKey("buoy_special_purpose:category") || keys.containsKey("buoy_special_purpose:shape") || keys.containsKey("buoy_special_purpose:colour")) {
+			mark = new MarkSpec(this);
+			mark.setObject(Obj.BOYSPP);
+		} else if (keys.containsKey("beacon_special_purpose:category") || keys.containsKey("beacon_special_purpose:shape") || keys.containsKey("beacon_special_purpose:colour")) {
+			mark = new MarkSpec(this);
+			mark.setObject(Obj.BCNSPP);
 		}
 
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java	(revision 24896)
@@ -20,4 +20,5 @@
 import oseam.seamarks.SeaMark.Col;
 import oseam.seamarks.SeaMark.Ent;
+import oseam.seamarks.SeaMark.Shp;
 import oseam.seamarks.MarkLat;
 import oseam.seamarks.MarkSaw;
@@ -39,8 +40,16 @@
 	private ActionListener alCat = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
+			Shp shp = null;
+			if (dlg.mark != null) shp = dlg.mark.getShape();
 			if (portButton.isSelected()) {
-				if (!(dlg.mark instanceof MarkLat) || (dlg.mark.getCategory() != Cat.LAT_PORT))
+				if (!(dlg.mark instanceof MarkLat))
 					dlg.mark = new MarkLat(dlg);
 				dlg.mark.setCategory(Cat.LAT_PORT);
+				if (panelPort.shapes.containsKey(shp)) {
+					panelPort.shapes.get(shp).doClick();
+				} else {
+					panelPort.clearSelections();
+					dlg.mark.setShape(Shp.UNKNOWN);
+				}
 				if (dlg.mark.getRegion() == SeaMark.IALA_A) {
 					dlg.mark.setColour(Ent.BODY, Col.RED);
@@ -58,7 +67,13 @@
 			}
 			if (stbdButton.isSelected()) {
-				if (!(dlg.mark instanceof MarkLat) || (dlg.mark.getCategory() != Cat.LAT_STBD))
+				if (!(dlg.mark instanceof MarkLat))
 					dlg.mark = new MarkLat(dlg);
 				dlg.mark.setCategory(Cat.LAT_STBD);
+				if (panelStbd.shapes.containsKey(shp)) {
+					panelStbd.shapes.get(shp).doClick();
+				} else {
+					panelStbd.clearSelections();
+					dlg.mark.setShape(Shp.UNKNOWN);
+				}
 				if (dlg.mark.getRegion() == SeaMark.IALA_A) {
 					dlg.mark.setColour(Ent.BODY, Col.GREEN);
@@ -76,7 +91,13 @@
 			}
 			if (prefPortButton.isSelected()) {
-				if (!(dlg.mark instanceof MarkLat) || (dlg.mark.getCategory() != Cat.LAT_PREF_PORT))
+				if (!(dlg.mark instanceof MarkLat))
 					dlg.mark = new MarkLat(dlg);
 				dlg.mark.setCategory(Cat.LAT_PREF_PORT);
+				if (panelPort.shapes.containsKey(shp) && (shp != Shp.PERCH)) {
+					panelPort.shapes.get(shp).doClick();
+				} else {
+					panelPort.clearSelections();
+					dlg.mark.setShape(Shp.UNKNOWN);
+				}
 				if (dlg.mark.getRegion() == SeaMark.IALA_A) {
 					dlg.mark.setColour(Ent.BODY, Col.RED_GREEN_RED);
@@ -94,7 +115,13 @@
 			}
 			if (prefStbdButton.isSelected()) {
-				if (!(dlg.mark instanceof MarkLat) || (dlg.mark.getCategory() != Cat.LAT_PREF_STBD))
+				if (!(dlg.mark instanceof MarkLat))
 					dlg.mark = new MarkLat(dlg);
 				dlg.mark.setCategory(Cat.LAT_PREF_STBD);
+				if (panelStbd.shapes.containsKey(shp) && (shp != Shp.PERCH)) {
+					panelStbd.shapes.get(shp).doClick();
+				} else {
+					panelStbd.clearSelections();
+					dlg.mark.setShape(Shp.UNKNOWN);
+				}
 				if (dlg.mark.getRegion() == SeaMark.IALA_A) {
 					dlg.mark.setColour(Ent.BODY, Col.GREEN_RED_GREEN);
@@ -112,6 +139,13 @@
 			}
 			if (safeWaterButton.isSelected()) {
-				if (!(dlg.mark instanceof MarkSaw))
+				if (!(dlg.mark instanceof MarkSaw)) {
 					dlg.mark = new MarkSaw(dlg);
+					if (panelSaw.shapes.containsKey(shp)) {
+						panelSaw.shapes.get(shp).doClick();
+					} else {
+						panelSaw.clearSelections();
+						dlg.mark.setShape(Shp.UNKNOWN);
+					}
+				}
 				dlg.mark.setColour(Ent.BODY, Col.RED_WHITE);
 				safeWaterButton.setBorderPainted(true);
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 24896)
@@ -12,5 +12,5 @@
 
 	private OSeaMAction dlg;
-	private PanelCol panelCol = null;
+	public PanelCol panelCol = null;
 
 	public PanelLit(OSeaMAction dia) {
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java	(revision 24896)
@@ -31,5 +31,4 @@
 	public JLabel lightIcon = null;
 	public JLabel topIcon = null;
-	public JLabel reflIcon = null;
 	public JLabel radarIcon = null;
 	public JLabel fogIcon = null;
@@ -95,7 +94,4 @@
 		topIcon.setBounds(new Rectangle(265, 170, 125, 185));
 		this.add(topIcon, null);
-		reflIcon = new JLabel();
-		reflIcon.setBounds(new Rectangle(265, 170, 125, 185));
-		this.add(reflIcon, null);
 		radarIcon = new JLabel();
 		radarIcon.setBounds(new Rectangle(265, 170, 130, 185));
@@ -265,5 +261,4 @@
 		lightIcon.setIcon(null);
 		topIcon.setIcon(null);
-		reflIcon.setIcon(null);
 		radarIcon.setIcon(null);
 		fogIcon.setIcon(null);
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java	(revision 24896)
@@ -40,6 +40,6 @@
 	public JRadioButton towerButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/TowerButton.png")));
 	public JRadioButton perchButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/PerchPButton.png")));
-	private EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
-	private EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
+	public EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
+	public EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
 	private ActionListener alShape = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java	(revision 24896)
@@ -23,11 +23,11 @@
 	private OSeaMAction dlg;
 	private ButtonGroup shapeButtons = new ButtonGroup();
-	private JRadioButton pillarButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/PillarButton.png")));
-	private JRadioButton sparButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SparButton.png")));
-	private JRadioButton sphereButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SphereButton.png")));
-	private JRadioButton barrelButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/BarrelButton.png")));
-	private JRadioButton floatButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FloatButton.png")));
-	private EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
-	private EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
+	public JRadioButton pillarButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/PillarButton.png")));
+	public JRadioButton sparButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SparButton.png")));
+	public JRadioButton sphereButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SphereButton.png")));
+	public JRadioButton barrelButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/BarrelButton.png")));
+	public JRadioButton floatButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FloatButton.png")));
+	public EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
+	public EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
 	private ActionListener alShape = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java	(revision 24896)
@@ -24,17 +24,17 @@
 	private OSeaMAction dlg;
 	private ButtonGroup shapeButtons = new ButtonGroup();
-	private JRadioButton pillarButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/PillarButton.png")));
-	private JRadioButton sparButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SparButton.png")));
-	private JRadioButton canButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/CanButton.png")));
-	private JRadioButton coneButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/ConeButton.png")));
-	private JRadioButton sphereButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SphereButton.png")));
-	private JRadioButton barrelButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/BarrelButton.png")));
-	private JRadioButton superButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SuperButton.png")));
-	private JRadioButton floatButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FloatButton.png")));
-	private JRadioButton beaconButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/BeaconButton.png")));
-	private JRadioButton towerButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/TowerButton.png")));
-	private EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
-	private EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
-	private PanelCol panelCol = null;
+	public JRadioButton pillarButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/PillarButton.png")));
+	public JRadioButton sparButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SparButton.png")));
+	public JRadioButton canButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/CanButton.png")));
+	public JRadioButton coneButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/ConeButton.png")));
+	public JRadioButton sphereButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SphereButton.png")));
+	public JRadioButton barrelButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/BarrelButton.png")));
+	public JRadioButton superButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/SuperButton.png")));
+	public JRadioButton floatButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/FloatButton.png")));
+	public JRadioButton beaconButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/BeaconButton.png")));
+	public JRadioButton towerButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/TowerButton.png")));
+	public EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
+	public EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
+	public PanelCol panelCol = null;
 	private ActionListener alShape = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java	(revision 24896)
@@ -40,6 +40,6 @@
 	public JRadioButton towerButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/TowerButton.png")));
 	public JRadioButton perchButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/PerchSButton.png")));
-	private EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
-	private EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
+	public EnumMap<Shp, JRadioButton> shapes = new EnumMap<Shp, JRadioButton>(Shp.class);
+	public EnumMap<Shp, Obj> objects = new EnumMap<Shp, Obj>(Shp.class);
 	private ActionListener alShape = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java	(revision 24896)
@@ -3,7 +3,4 @@
 import java.util.Map;
 import javax.swing.ImageIcon;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.ChangePropertyCommand;
 
 import oseam.dialogs.OSeaMAction;
@@ -89,4 +86,6 @@
 		} else if (keys.containsKey("seamark:type") && (keys.get("seamark:type").equals("light_float"))) {
 			dlg.panelMain.panelHaz.floatButton.doClick();
+		} else {
+			dlg.panelMain.panelHaz.beaconButton.doClick();
 		}
 
@@ -94,8 +93,4 @@
 		parseFogRadar(keys);
 
-		// dlg.cbM01CatOfMark.setSelectedIndex(getMarkIndex());
-		// dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
-		// dlg.tfM01Name.setText(getName());
-		// dlg.cM01TopMark.setSelected(hasTopMark());
 	}
 
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java	(revision 24896)
@@ -5,10 +5,6 @@
 import javax.swing.ImageIcon;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.ChangePropertyCommand;
-
 import oseam.dialogs.OSeaMAction;
 import oseam.seamarks.SeaMark;
-import oseam.seamarks.SeaMark.Col;
 
 public class MarkIsol extends SeaMark {
@@ -59,12 +55,10 @@
 		} else if (keys.containsKey("seamark:type") && (keys.get("seamark:type").equals("light_float"))) {
 			dlg.panelMain.panelHaz.floatButton.doClick();
+		} else {
+			dlg.panelMain.panelHaz.beaconButton.doClick();
 		}
 
 		parseLights(keys);
 		parseFogRadar(keys);
-
-		// dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
-		// dlg.tfM01Name.setText(getName());
-		// dlg.cM01TopMark.setSelected(hasTopMark());
 	}
 
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java	(revision 24896)
@@ -5,9 +5,5 @@
 import javax.swing.ImageIcon;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.ChangePropertyCommand;
-
 import oseam.dialogs.OSeaMAction;
-import oseam.seamarks.SeaMark.Col;
 
 public class MarkLat extends SeaMark {
@@ -71,87 +67,149 @@
 		}
 
-		/*
-		 * if (cat.isEmpty()) { if (col.equals("red")) { setColour(RED); if
-		 * (top.equals("cylinder")) { setBuoyIndex(PORT_HAND); setRegion(IALA_A); }
-		 * else if (top.equals("cone, point up")) { setBuoyIndex(STARBOARD_HAND);
-		 * setRegion(IALA_B); } else { if (getRegion() == IALA_A)
-		 * setBuoyIndex(PORT_HAND); else setBuoyIndex(STARBOARD_HAND); } } else if
-		 * (col.equals("green")) { setColour(GREEN); if
-		 * (top.equals("cone, point up")) { setBuoyIndex(STARBOARD_HAND);
-		 * setRegion(IALA_A); } else if (top.equals("cylinder")) {
-		 * setBuoyIndex(PORT_HAND); setRegion(IALA_B); } else { if (getRegion() ==
-		 * IALA_A) setBuoyIndex(STARBOARD_HAND); else setBuoyIndex(PORT_HAND); } }
-		 * else if (col.equals("red;green;red")) { setColour(RED_GREEN_RED); if
-		 * (top.equals("cylinder")) { setBuoyIndex(PREF_PORT_HAND);
-		 * setRegion(IALA_A); } else if (top.equals("cone, point up")) {
-		 * setBuoyIndex(PREF_STARBOARD_HAND); setRegion(IALA_B); } else { if
-		 * (getRegion() == IALA_A) setBuoyIndex(PREF_PORT_HAND); else
-		 * setBuoyIndex(PREF_STARBOARD_HAND); } } else if
-		 * (col.equals("green;red;green")) { setColour(GREEN_RED_GREEN); if
-		 * (top.equals("cone, point up")) { setBuoyIndex(PREF_STARBOARD_HAND);
-		 * setRegion(IALA_A); } else if (top.equals("cylinder")) {
-		 * setBuoyIndex(PREF_PORT_HAND); setRegion(IALA_B); } else { if (getRegion()
-		 * == IALA_A) setBuoyIndex(PREF_STARBOARD_HAND); else
-		 * setBuoyIndex(PREF_PORT_HAND); } } } else if (cat.equals("port")) {
-		 * 
-		 * setBuoyIndex(PORT_HAND);
-		 * 
-		 * if (col.equals("red")) { setRegion(IALA_A); setColour(RED); } else if
-		 * (col.equals("green")) { setRegion(IALA_B); setColour(GREEN); } else { if
-		 * (getRegion() == IALA_A) setColour(RED); else setColour(GREEN); } } else
-		 * if (cat.equals("starboard")) {
-		 * 
-		 * setBuoyIndex(STARBOARD_HAND);
-		 * 
-		 * if (col.equals("green")) { setRegion(IALA_A); setColour(GREEN); } else if
-		 * (col.equals("red")) { setRegion(IALA_B); setColour(RED); } else { if
-		 * (getRegion() == IALA_A) setColour(GREEN); else setColour(RED); } } else
-		 * if (cat.equals("preferred_channel_port")) {
-		 * 
-		 * setBuoyIndex(PREF_PORT_HAND);
-		 * 
-		 * if (col.equals("red;green;red")) { setRegion(IALA_A);
-		 * setColour(RED_GREEN_RED); } else if (col.equals("green;red;green")) {
-		 * setRegion(IALA_B); setColour(GREEN_RED_GREEN); } else { if (getRegion()
-		 * == IALA_A) setColour(RED_GREEN_RED); else setColour(GREEN_RED_GREEN); }
-		 * 
-		 * } else if (cat.equals("preferred_channel_starboard")) {
-		 * 
-		 * setBuoyIndex(PREF_STARBOARD_HAND);
-		 * 
-		 * if (col.equals("green;red;green")) { setRegion(IALA_A);
-		 * setColour(GREEN_RED_GREEN); } else if (col.equals("red;green;red")) {
-		 * setRegion(IALA_B); setColour(RED_GREEN_RED); } else { if (getRegion() ==
-		 * IALA_A) setColour(GREEN_RED_GREEN); else setColour(RED_GREEN_RED); } }
-		 * 
-		 * if (keys.containsKey("seamark:buoy_lateral:shape")) { str =
-		 * keys.get("seamark:buoy_lateral:shape");
-		 * 
-		 * switch (getBuoyIndex()) { case PORT_HAND: if (str.equals("can"))
-		 * setStyleIndex(CAN); else if (str.equals("pillar")) setStyleIndex(PILLAR);
-		 * else if (str.equals("spar")) setStyleIndex(SPAR); break;
-		 * 
-		 * case PREF_PORT_HAND: if (str.equals("can")) setStyleIndex(CAN); else if
-		 * (str.equals("pillar")) setStyleIndex(PILLAR); else if
-		 * (str.equals("spar")) setStyleIndex(SPAR); break;
-		 * 
-		 * case STARBOARD_HAND: if (str.equals("conical")) setStyleIndex(CONE); else
-		 * if (str.equals("pillar")) setStyleIndex(PILLAR); else if
-		 * (str.equals("spar")) setStyleIndex(SPAR); break;
-		 * 
-		 * case PREF_STARBOARD_HAND: if (str.equals("conical")) setStyleIndex(CONE);
-		 * else if (str.equals("pillar")) setStyleIndex(PILLAR); else if
-		 * (str.equals("spar")) setStyleIndex(SPAR); break; } } else if
-		 * (keys.containsKey("seamark:beacon_lateral:shape")) { str =
-		 * keys.get("seamark:beacon_lateral:shape"); if (str.equals("tower"))
-		 * setStyleIndex(TOWER); else if (str.equals("perch")) setStyleIndex(PERCH);
-		 * else setStyleIndex(BEACON); } else if (keys.containsKey("seamark:type")
-		 * && (keys.get("seamark:type").equals("beacon_lateral"))) {
-		 * setStyleIndex(BEACON); } else if (keys.containsKey("seamark:type") &&
-		 * (keys.get("seamark:type").equals("light_float"))) { setStyleIndex(FLOAT);
-		 * }
-		 * 
-		 * parseLights(keys); parseFogRadar(keys); setLightColour();
-		 */}
+		if (cat.isEmpty()) {
+			if (col.equals("red")) {
+				setColour(Ent.BODY, Col.RED);
+				if (top.equals("cylinder")) {
+					dlg.panelMain.panelChan.portButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+				} else if (top.equals("cone, point up")) {
+					dlg.panelMain.panelChan.stbdButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+				} else {
+					if (getRegion() == IALA_A)
+						dlg.panelMain.panelChan.portButton.doClick();
+					else
+						dlg.panelMain.panelChan.stbdButton.doClick();
+				}
+			} else if (col.equals("green")) {
+				setColour(Ent.BODY, Col.GREEN);
+				if (top.equals("cone, point up")) {
+					dlg.panelMain.panelChan.stbdButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+				} else if (top.equals("cylinder")) {
+					dlg.panelMain.panelChan.portButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+				} else {
+					if (getRegion() == IALA_A)
+						dlg.panelMain.panelChan.stbdButton.doClick();
+					else
+						dlg.panelMain.panelChan.portButton.doClick();
+				}
+			} else if (col.equals("red;green;red")) {
+				setColour(Ent.BODY, Col.RED_GREEN_RED);
+				if (top.equals("cylinder")) {
+					dlg.panelMain.panelChan.prefPortButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+				} else if (top.equals("cone, point up")) {
+					dlg.panelMain.panelChan.prefStbdButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+				} else {
+					if (getRegion() == IALA_A)
+						dlg.panelMain.panelChan.prefPortButton.doClick();
+					else
+						dlg.panelMain.panelChan.prefStbdButton.doClick();
+				}
+			} else if (col.equals("green;red;green")) {
+				setColour(Ent.BODY, Col.GREEN_RED_GREEN);
+				if (top.equals("cone, point up")) {
+					dlg.panelMain.panelChan.prefStbdButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+				} else if (top.equals("cylinder")) {
+					dlg.panelMain.panelChan.prefPortButton.doClick();
+					dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+				} else {
+					if (getRegion() == IALA_A)
+						dlg.panelMain.panelChan.prefStbdButton.doClick();
+					else
+						dlg.panelMain.panelChan.prefPortButton.doClick();
+				}
+			}
+		} else if (cat.equals("port")) {
+
+			dlg.panelMain.panelChan.portButton.doClick();
+
+			if (col.equals("red")) {
+				dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+			} else if (col.equals("green")) {
+				dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+			}
+		} else if (cat.equals("starboard")) {
+
+			dlg.panelMain.panelChan.stbdButton.doClick();
+
+			if (col.equals("green")) {
+				dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+			} else if (col.equals("red")) {
+				dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+			}
+		} else if (cat.equals("preferred_channel_port")) {
+
+			dlg.panelMain.panelChan.prefPortButton.doClick();
+
+			if (col.equals("red;green;red")) {
+				dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+			} else if (col.equals("green;red;green")) {
+				dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+			}
+
+		} else if (cat.equals("preferred_channel_starboard")) {
+
+			dlg.panelMain.panelChan.prefStbdButton.doClick();
+
+			if (col.equals("green;red;green")) {
+				dlg.panelMain.panelChan.panelPort.regionAButton.doClick();
+			} else if (col.equals("red;green;red")) {
+				dlg.panelMain.panelChan.panelPort.regionBButton.doClick();
+			}
+		}
+
+		if (keys.containsKey("seamark:buoy_lateral:shape"))
+			str = keys.get("seamark:buoy_lateral:shape");
+		else if (keys.containsKey("seamark:beacon_lateral:shape"))
+			str = keys.get("seamark:beacon_lateral:shape");
+		else str = "";
+
+		switch (getCategory()) {
+		case LAT_PORT:
+		case LAT_PREF_PORT:
+			if (str.equals("can"))
+				dlg.panelMain.panelChan.panelPort.canButton.doClick();
+			else if (str.equals("pillar"))
+				dlg.panelMain.panelChan.panelPort.pillarButton.doClick();
+			else if (str.equals("spar"))
+				dlg.panelMain.panelChan.panelPort.sparButton.doClick();
+			else if (str.equals("tower"))
+				setShape(Shp.TOWER);
+			else if (str.equals("perch"))
+				setShape(Shp.PERCH);
+			else if (keys.containsKey("seamark:type") && (keys.get("seamark:type").equals("light_float")))
+				dlg.panelMain.panelChan.panelPort.floatButton.doClick();
+			else
+				dlg.panelMain.panelChan.panelPort.beaconButton.doClick();
+			break;
+
+		case LAT_STBD:
+		case LAT_PREF_STBD:
+			if (str.equals("conical"))
+				dlg.panelMain.panelChan.panelStbd.coneButton.doClick();
+			else if (str.equals("pillar"))
+				dlg.panelMain.panelChan.panelStbd.pillarButton.doClick();
+			else if (str.equals("spar"))
+				dlg.panelMain.panelChan.panelStbd.sparButton.doClick();
+			else if (str.equals("tower"))
+				setShape(Shp.TOWER);
+			else if (str.equals("perch"))
+				setShape(Shp.PERCH);
+			else if (keys.containsKey("seamark:type") && (keys.get("seamark:type").equals("light_float")))
+				dlg.panelMain.panelChan.panelStbd.floatButton.doClick();
+			else
+				dlg.panelMain.panelChan.panelStbd.beaconButton.doClick();
+			break;
+		}
+
+		parseLights(keys);
+		parseFogRadar(keys);
+		setLightColour();
+	}
 
 	public void setLightColour() {
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLight.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLight.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLight.java	(revision 24896)
@@ -4,7 +4,4 @@
 
 import javax.swing.ImageIcon;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.ChangePropertyCommand;
 
 import oseam.dialogs.OSeaMAction;
@@ -41,19 +38,22 @@
 			setName(keys.get("seamark:light_float:name"));
 
-		/*
-		 * if (keys.containsKey("seamark:type")) { String type =
-		 * keys.get("seamark:type"); if (type.equals("landmark"))
-		 * setBuoyIndex(LIGHT_HOUSE); else if (type.equals("light_major"))
-		 * setBuoyIndex(LIGHT_MAJOR); else if (type.equals("light_minor"))
-		 * setBuoyIndex(LIGHT_MINOR); else if (type.equals("light_vessel"))
-		 * setBuoyIndex(LIGHT_VESSEL); }
-		 * 
-		 * parseLights(keys); parseFogRadar(keys); setTopMark(false);
-		 * setFired(true);
-		 * 
-		 * dlg.cbM01CatOfMark.setSelectedIndex(getBuoyIndex());
-		 * dlg.tfM01Name.setText(getName()); dlg.cM01Fired.setEnabled(false);
-		 * dlg.cM01Fired.setSelected(true);
-		 */}
+		if (keys.containsKey("seamark:type")) {
+			String type = keys.get("seamark:type");
+			if (type.equals("landmark"))
+				setCategory(Cat.LIGHT_HOUSE);
+			else if (type.equals("light_major"))
+				setCategory(Cat.LIGHT_MAJOR);
+			else if (type.equals("light_minor"))
+				setCategory(Cat.LIGHT_MINOR);
+			else if (type.equals("light_vessel"))
+				setCategory(Cat.LIGHT_VESSEL);
+			else if (type.equals("light_float"))
+				setCategory(Cat.LIGHT_FLOAT);
+		}
+
+		parseLights(keys);
+		parseFogRadar(keys);
+		setFired(true);
+	}
 
 	public void paintSign() {
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSaw.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSaw.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSaw.java	(revision 24896)
@@ -4,7 +4,4 @@
 
 import javax.swing.ImageIcon;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.ChangePropertyCommand;
 
 import oseam.dialogs.OSeaMAction;
@@ -40,44 +37,27 @@
 			setName(keys.get("seamark:light_float:name"));
 
-		/*
-		 * 
-		 * setBuoyIndex(SAFE_WATER); setColour(SeaMark.RED_WHITE);
-		 * setLightColour("W");
-		 * setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
-		 * 
-		 * if (keys.containsKey("seamark:buoy_safe_water:shape")) { str =
-		 * keys.get("seamark:buoy_safe_water:shape");
-		 * 
-		 * if (str.equals("pillar")) setStyleIndex(SAFE_PILLAR); else if
-		 * (str.equals("spar")) setStyleIndex(SAFE_SPAR); else if
-		 * (str.equals("sphere")) setStyleIndex(SAFE_SPHERE); } else if
-		 * ((keys.containsKey("seamark:type")) &&
-		 * (keys.get("seamark:type").equals("light_float"))) {
-		 * setStyleIndex(SAFE_FLOAT); } else if ((keys.containsKey("seamark:type"))
-		 * && (keys.get("seamark:type").equals("beacon_safe_water"))) {
-		 * setStyleIndex(SAFE_BEACON); }
-		 * 
-		 * if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
-		 * setStyleIndex(0);
-		 * 
-		 * if (keys.containsKey("seamark:topmark:shape") ||
-		 * keys.containsKey("seamark:topmark:colour")) { setTopMark(true); }
-		 * 
-		 * refreshLights(); parseLights(keys); parseFogRadar(keys);
-		 * 
-		 * dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
-		 * dlg.tfM01Name.setText(getName());
-		 * dlg.cM01TopMark.setSelected(hasTopMark());
-		 */}
+		if (keys.containsKey("seamark:buoy_safe_water:shape")) {
+			str = keys.get("seamark:buoy_safe_water:shape");
 
-	/*
-	 * public void refreshLights() { dlg.cbM01Kennung.removeAllItems();
-	 * dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212"));
-	 * dlg.cbM01Kennung.addItem("Iso"); dlg.cbM01Kennung.addItem("Oc");
-	 * dlg.cbM01Kennung.addItem("LFl"); dlg.cbM01Kennung.addItem("Mo");
-	 * dlg.cbM01Kennung.setSelectedIndex(0); }
-	 * 
-	 * public void setLightColour() { super.setLightColour("W"); }
-	 */
+			if (str.equals("pillar"))
+				dlg.panelMain.panelChan.panelSaw.pillarButton.doClick();
+			else if (str.equals("spar"))
+				dlg.panelMain.panelChan.panelSaw.sparButton.doClick();
+			else if (str.equals("sphere"))
+				dlg.panelMain.panelChan.panelSaw.sphereButton.doClick();
+			else if (str.equals("barrel"))
+				dlg.panelMain.panelChan.panelSaw.barrelButton.doClick();
+		} else if ((keys.containsKey("seamark:type")) && (keys.get("seamark:type").equals("light_float"))) {
+			dlg.panelMain.panelChan.panelSaw.floatButton.doClick();
+		}
+
+		if (keys.containsKey("seamark:topmark:shape") || keys.containsKey("seamark:topmark:colour")) {
+//			setTopMark(true);
+		}
+
+		parseLights(keys);
+		parseFogRadar(keys);
+	}
+
 	public void paintSign() {
 
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSpec.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSpec.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSpec.java	(revision 24896)
@@ -5,11 +5,5 @@
 import javax.swing.ImageIcon;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.command.ChangePropertyCommand;
-
 import oseam.dialogs.OSeaMAction;
-import oseam.seamarks.SeaMark;
-import oseam.seamarks.SeaMark.Col;
-import oseam.seamarks.SeaMark.Ent;
 
 public class MarkSpec extends SeaMark {
@@ -40,58 +34,65 @@
 			setName(keys.get("seamark:light_float:name"));
 
-		/*
-		 * dlg.cM01TopMark.setEnabled(true);
-		 * 
-		 * setBuoyIndex(SPECIAL_PURPOSE); setColour(SeaMark.YELLOW);
-		 * setLightColour("W");
-		 * setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
-		 * 
-		 * if (keys.containsKey("seamark:buoy_special_purpose:shape")) { str =
-		 * keys.get("seamark:buoy_special_purpose:shape");
-		 * 
-		 * if (str.equals("pillar")) setStyleIndex(PILLAR); else if
-		 * (str.equals("can")) setStyleIndex(CAN); else if (str.equals("conical"))
-		 * setStyleIndex(CONE); else if (str.equals("spar")) setStyleIndex(SPAR);
-		 * else if (str.equals("sphere")) setStyleIndex(SPHERE); else if
-		 * (str.equals("barrel")) setStyleIndex(BARREL); }
-		 * 
-		 * if (keys.containsKey("seamark:beacon_special_purpose:shape")) { str =
-		 * keys.get("seamark:beacon_special_purpose:shape"); if
-		 * (str.equals("tower")) setStyleIndex(TOWER); else setStyleIndex(BEACON); }
-		 * 
-		 * if (keys.containsKey("seamark:light_float:colour")) {
-		 * setStyleIndex(FLOAT); }
-		 * 
-		 * if ((keys.containsKey("seamark:type") && keys.get("seamark:type").equals(
-		 * "beacon_special_purpose")) ||
-		 * keys.containsKey("seamark:beacon_special_purpose:colour") ||
-		 * keys.containsKey("seamark:beacon_special_purpose:shape")) { if
-		 * (keys.containsKey("seamark:beacon_special_purpose:shape") &&
-		 * keys.get("seamark:beacon_special_purpose:shape").equals("tower"))
-		 * setStyleIndex(TOWER); else setStyleIndex(BEACON); } else if
-		 * (keys.containsKey("seamark:light_float:colour") &&
-		 * keys.get("seamark:light_float:colour").equals("yellow"))
-		 * setStyleIndex(FLOAT);
-		 * 
-		 * if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
-		 * setStyleIndex(0);
-		 * 
-		 * keys = node.getKeys(); if (keys.containsKey("seamark:topmark:shape")) {
-		 * str = keys.get("seamark:topmark:shape"); setTopMark(true); if
-		 * (str.equals("x-shape")) { if (keys.containsKey("seamark:topmark:colour"))
-		 * { if (keys.get("seamark:topmark:colour").equals("red"))
-		 * setTopMarkIndex(TOP_RED_X); else setTopMarkIndex(TOP_YELLOW_X); } } else
-		 * if (str.equals("cone, point up")) { setTopMarkIndex(TOP_YELLOW_CONE); }
-		 * else if (str.equals("cylinder")) { setTopMarkIndex(TOP_YELLOW_CAN); } }
-		 * 
-		 * parseLights(keys); parseFogRadar(keys);
-		 * 
-		 * dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
-		 * dlg.tfM01Name.setText(getName());
-		 * dlg.cM01TopMark.setSelected(hasTopMark());
-		 */}
-
-	public void setLightColour() {
-		super.setLightColour(Col.WHITE);
+		dlg.panelMain.panelSpec.panelCol.yellowButton.doClick();
+		dlg.panelMain.panelLit.panelCol.whiteButton.doClick();
+
+		if (keys.containsKey("seamark:buoy_special_purpose:shape")) {
+			str = keys.get("seamark:buoy_special_purpose:shape");
+
+			if (str.equals("pillar"))
+				dlg.panelMain.panelSpec.pillarButton.doClick();
+			else if (str.equals("can"))
+				dlg.panelMain.panelSpec.canButton.doClick();
+			else if (str.equals("conical"))
+				dlg.panelMain.panelSpec.coneButton.doClick();
+			else if (str.equals("spar"))
+				dlg.panelMain.panelSpec.sparButton.doClick();
+			else if (str.equals("sphere"))
+				dlg.panelMain.panelSpec.sphereButton.doClick();
+			else if (str.equals("barrel"))
+				dlg.panelMain.panelSpec.barrelButton.doClick();
+		}
+
+		if (keys.containsKey("seamark:beacon_special_purpose:shape")) {
+			str = keys.get("seamark:beacon_special_purpose:shape");
+			if (str.equals("tower"))
+				dlg.panelMain.panelSpec.towerButton.doClick();
+			else
+				dlg.panelMain.panelSpec.beaconButton.doClick();
+		}
+
+		if (keys.containsKey("seamark:light_float:colour")) {
+			dlg.panelMain.panelSpec.floatButton.doClick();
+		}
+
+		if ((keys.containsKey("seamark:type") && keys.get("seamark:type").equals("beacon_special_purpose"))
+				|| keys.containsKey("seamark:beacon_special_purpose:colour") || keys.containsKey("seamark:beacon_special_purpose:shape")) {
+			if (keys.containsKey("seamark:beacon_special_purpose:shape")
+					&& keys.get("seamark:beacon_special_purpose:shape").equals("tower"))
+				dlg.panelMain.panelSpec.towerButton.doClick();
+			else
+				dlg.panelMain.panelSpec.beaconButton.doClick();
+		} else if (keys.containsKey("seamark:light_float:colour") && keys.get("seamark:light_float:colour").equals("yellow"))
+			dlg.panelMain.panelSpec.floatButton.doClick();
+
+		if (keys.containsKey("seamark:topmark:shape")) {
+			str = keys.get("seamark:topmark:shape");
+/*			setTopMark(true);
+			if (str.equals("x-shape")) {
+				if (keys.containsKey("seamark:topmark:colour")) {
+					if (keys.get("seamark:topmark:colour").equals("red"))
+						setTopMarkIndex(TOP_RED_X);
+					else
+						setTopMarkIndex(TOP_YELLOW_X);
+				}
+			} else if (str.equals("cone, point up")) {
+				setTopMarkIndex(TOP_YELLOW_CONE);
+			} else if (str.equals("cylinder")) {
+				setTopMarkIndex(TOP_YELLOW_CAN);
+			}
+*/		}
+
+		parseLights(keys);
+		parseFogRadar(keys);
 	}
 
@@ -133,29 +134,83 @@
 			image += ".png";
 			dlg.panelMain.topIcon.setIcon(new ImageIcon(getClass().getResource(image)));
-			/*
-			 * if (hasTopMark()) { image = ""; switch (getShape()) { case PILLAR: case
-			 * SPAR: switch (getTopMarkIndex()) { case TOP_YELLOW_X: image =
-			 * "/images/Top_X_Yellow_Buoy.png"; break; case TOP_RED_X: image =
-			 * "/images/Top_X_Red_Buoy.png"; break; case TOP_YELLOW_CAN: image =
-			 * "/images/Top_Can_Yellow_Buoy.png"; break; case TOP_YELLOW_CONE: image =
-			 * "/images/Top_Cone_Yellow_Buoy.png"; break; } break; case CAN: case
-			 * CONE: case SPHERE: case BARREL: switch (getTopMarkIndex()) { case
-			 * TOP_YELLOW_X: image = "/images/Top_X_Yellow_Buoy_Small.png"; break;
-			 * case TOP_RED_X: image = "/images/Top_X_Red_Buoy_Small.png"; break; case
-			 * TOP_YELLOW_CAN: image = "/images/Top_Can_Yellow_Buoy_Small.png"; break;
-			 * case TOP_YELLOW_CONE: image = "/images/Top_Cone_Yellow_Buoy_Small.png";
-			 * break; } break; case BEACON: case TOWER: switch (getTopMarkIndex()) {
-			 * case TOP_YELLOW_X: image = "/images/Top_X_Yellow_Beacon.png"; break;
-			 * case TOP_RED_X: image = "/images/Top_X_Red_Beacon.png"; break; case
-			 * TOP_YELLOW_CAN: image = "/images/Top_Can_Yellow_Beacon.png"; break;
-			 * case TOP_YELLOW_CONE: image = "/images/Top_Cone_Yellow_Beacon.png";
-			 * break; } break; case FLOAT: switch (getTopMarkIndex()) { case
-			 * TOP_YELLOW_X: image = "/images/Top_X_Yellow_Float.png"; break; case
-			 * TOP_RED_X: image = "/images/Top_X_Red_Float.png"; break; case
-			 * TOP_YELLOW_CAN: image = "/images/Top_Can_Yellow_Float.png"; break; case
-			 * TOP_YELLOW_CONE: image = "/images/Top_Cone_Yellow_Float.png"; break; }
-			 * break; } if (!image.isEmpty()) dlg.lM06Icon.setIcon(new
-			 * ImageIcon(getClass().getResource(image))); }
-			 */
+
+			if (hasTopmark()) {
+				image = "";
+				switch (getShape()) {
+				case PILLAR:
+				case SPAR:
+					switch (getTopmark()) {
+					case X_SHAPE:
+						if (getColour(Ent.TOPMARK) == Col.YELLOW)
+							image = "/images/Top_X_Yellow_Buoy.png";
+						else
+							image = "/images/Top_X_Red_Buoy.png";
+						break;
+					case CAN:
+						image = "/images/Top_Can_Yellow_Buoy.png";
+						break;
+					case CONE:
+						image = "/images/Top_Cone_Yellow_Buoy.png";
+						break;
+					}
+					break;
+				case CAN:
+				case CONE:
+				case SPHERE:
+				case BARREL:
+					switch (getTopmark()) {
+					case X_SHAPE:
+						if (getColour(Ent.TOPMARK) == Col.YELLOW)
+							image = "/images/Top_X_Yellow_Buoy_Small.png";
+						else
+							image = "/images/Top_X_Red_Buoy_Small.png";
+						break;
+					case CAN:
+						image = "/images/Top_Can_Yellow_Buoy_Small.png";
+						break;
+					case CONE:
+						image = "/images/Top_Cone_Yellow_Buoy_Small.png";
+						break;
+					}
+					break;
+				case BEACON:
+				case TOWER:
+					switch (getTopmark()) {
+					case X_SHAPE:
+						if (getColour(Ent.TOPMARK) == Col.YELLOW)
+							image = "/images/Top_X_Yellow_Beacon.png";
+						else
+							image = "/images/Top_X_Red_Beacon.png";
+						break;
+					case CAN:
+						image = "/images/Top_Can_Yellow_Beacon.png";
+						break;
+					case CONE:
+						image = "/images/Top_Cone_Yellow_Beacon.png";
+						break;
+					}
+					break;
+				case FLOAT:
+				case SUPER:
+					switch (getTopmark()) {
+					case X_SHAPE:
+						if (getColour(Ent.TOPMARK) == Col.YELLOW)
+							image = "/images/Top_X_Yellow_Float.png";
+						else
+							image = "/images/Top_X_Red_Float.png";
+						break;
+					case CAN:
+						image = "/images/Top_Can_Yellow_Float.png";
+						break;
+					case CONE:
+						image = "/images/Top_Cone_Yellow_Float.png";
+						break;
+					}
+					break;
+				}
+				if (!image.isEmpty())
+					dlg.panelMain.topIcon.setIcon(new ImageIcon(getClass().getResource(image)));
+			}
+
 		} else
 			dlg.panelMain.shapeIcon.setIcon(null);
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 24890)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 24896)
@@ -1,3 +1,5 @@
 package oseam.seamarks;
+
+import javax.swing.ImageIcon;
 
 import java.util.Iterator;
@@ -52,5 +54,5 @@
 
 	public enum Obj {
-		UNKNOWN, BCNCAR, BCNISD, BCNLAT, BCNSAW, BCNSPP, BOYCAR, BOYISD, BOYLAT, BOYSAW, BOYSPP, LIGHTS, LITFLT, LITVES, LNDMRK
+		UNKNOWN, BCNCAR, BCNISD, BCNLAT, BCNSAW, BCNSPP, BOYCAR, BOYISD, BOYLAT, BOYSAW, BOYSPP, LIGHTS, LITFLT, LITVES, LNDMRK, MORFAC
 	}
 
@@ -108,5 +110,5 @@
 
 	public enum Cat {
-		UNKNOWN, LAT_PORT, LAT_STBD, LAT_PREF_PORT, LAT_PREF_STBD, CARD_NORTH, CARD_EAST, CARD_SOUTH, CARD_WEST, LIGHT_HOUSE, LIGHT_MAJOR, LIGHT_MINOR, LIGHT_VESSEL, LIGHT_FLOAT
+		UNKNOWN, LAT_PORT, LAT_STBD, LAT_PREF_PORT, LAT_PREF_STBD, CARD_NORTH, CARD_EAST, CARD_SOUTH, CARD_WEST, LIGHT_HOUSE, LIGHT_MAJOR, LIGHT_MINOR, LIGHT_VESSEL, LIGHT_FLOAT, MOORING_BUOY
 	}
 
@@ -149,5 +151,5 @@
 		return topShape;
 	}
-	
+
 	public void setTopmark(Top top) {
 		topShape = top;
@@ -547,99 +549,75 @@
 
 	public void paintSign() {
-		/*
-		 * dlg.lM01NameMark.setText(getName());
-		 * 
-		 * dlg.bM01Save.setEnabled(true);
-		 * 
-		 * dlg.cM01TopMark.setSelected(hasTopMark());
-		 * dlg.cM01Fired.setSelected(isFired());
-		 * 
-		 * dlg.tfM01RepeatTime.setText(getLightPeriod());
-		 * 
-		 * dlg.tfM01Name.setText(getName()); dlg.tfM01Name.setEnabled(true);
-		 * 
-		 * if (hasRadar()) { dlg.lM03Icon.setIcon(new
-		 * ImageIcon(getClass().getResource( "/images/Radar_Reflector_355.png"))); }
-		 * 
-		 * else if (hasRacon()) { dlg.lM04Icon.setIcon(new
-		 * ImageIcon(getClass().getResource( "/images/Radar_Station.png"))); if
-		 * (getRaType() != 0) { String c = (String)
-		 * dlg.cbM01Racon.getSelectedItem(); if ((getRaType() == RATYPE_RACON) &&
-		 * !getRaconGroup().isEmpty()) c += ("(" + getRaconGroup() + ")");
-		 * dlg.lM01RadarMark.setText(c); } dlg.cbM01Racon.setVisible(true); if
-		 * (getRaType() == RATYPE_RACON) { dlg.lM01Racon.setVisible(true);
-		 * dlg.tfM01Racon.setVisible(true); dlg.tfM01Racon.setEnabled(true); } else
-		 * { dlg.lM01Racon.setVisible(false); dlg.tfM01Racon.setVisible(false); } }
-		 * else { dlg.cbM01Racon.setVisible(false); dlg.lM01Racon.setVisible(false);
-		 * dlg.tfM01Racon.setVisible(false); }
-		 * 
-		 * if (hasFog()) { dlg.lM05Icon.setIcon(new
-		 * ImageIcon(getClass().getResource( "/images/Fog_Signal.png"))); if
-		 * (getFogSound() != 0) { String c = (String)
-		 * dlg.cbM01Fog.getSelectedItem(); if (!getFogGroup().isEmpty()) c += ("(" +
-		 * getFogGroup() + ")"); if (!getFogPeriod().isEmpty()) c += (" " +
-		 * getFogPeriod() + "s"); dlg.lM01FogMark.setText(c); }
-		 * dlg.cbM01Fog.setVisible(true); if (getFogSound() == 0) {
-		 * dlg.lM01FogGroup.setVisible(false); dlg.tfM01FogGroup.setVisible(false);
-		 * dlg.lM01FogPeriod.setVisible(false);
-		 * dlg.tfM01FogPeriod.setVisible(false); } else {
-		 * dlg.lM01FogGroup.setVisible(true); dlg.tfM01FogGroup.setVisible(true);
-		 * dlg.lM01FogPeriod.setVisible(true); dlg.tfM01FogPeriod.setVisible(true);
-		 * } } else { dlg.cbM01Fog.setVisible(false);
-		 * dlg.lM01FogGroup.setVisible(false); dlg.tfM01FogGroup.setVisible(false);
-		 * dlg.lM01FogPeriod.setVisible(false);
-		 * dlg.tfM01FogPeriod.setVisible(false); }
-		 * 
-		 * if (isFired()) { String lp, c; String tmp = null; int i1;
-		 * 
-		 * String col = getLightColour(); if (col.equals("W")) {
-		 * dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
-		 * "/images/Light_White_120.png")));
-		 * dlg.cbM01Colour.setSelectedIndex(WHITE_LIGHT); } else if
-		 * (col.equals("R")) { dlg.lM02Icon.setIcon(new
-		 * ImageIcon(getClass().getResource( "/images/Light_Red_120.png")));
-		 * dlg.cbM01Colour.setSelectedIndex(RED_LIGHT); } else if (col.equals("G"))
-		 * { dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
-		 * "/images/Light_Green_120.png")));
-		 * dlg.cbM01Colour.setSelectedIndex(GREEN_LIGHT); } else {
-		 * dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
-		 * "/images/Light_Magenta_120.png")));
-		 * dlg.cbM01Colour.setSelectedIndex(UNKNOWN_COLOUR); }
-		 * 
-		 * c = getLightChar(); dlg.cbM01Kennung.setSelectedItem(c); if
-		 * (c.contains("+")) { i1 = c.indexOf("+"); tmp = c.substring(i1,
-		 * c.length()); c = c.substring(0, i1); if (!getLightGroup().isEmpty()) { c
-		 * = c + "(" + getLightGroup() + ")"; } if (tmp != null) c = c + tmp;
-		 * dlg.cbM01Kennung.setSelectedItem(c); } else if
-		 * (!getLightGroup().isEmpty()) c = c + "(" + getLightGroup() + ")"; if
-		 * (dlg.cbM01Kennung.getSelectedIndex() == 0)
-		 * dlg.cbM01Kennung.setSelectedItem(c); c = c + " " + getLightColour(); lp =
-		 * getLightPeriod(); if (!lp.isEmpty()) c = c + " " + lp + "s";
-		 * dlg.lM01FireMark.setText(c); dlg.cM01Fired.setVisible(true);
-		 * dlg.lM01Kennung.setVisible(true); dlg.cbM01Kennung.setVisible(true); if
-		 * (((String) dlg.cbM01Kennung.getSelectedItem()).contains("(")) {
-		 * dlg.tfM01Group.setVisible(false); dlg.lM01Group.setVisible(false); } else
-		 * { dlg.lM01Group.setVisible(true); dlg.tfM01Group.setVisible(true); }
-		 * dlg.tfM01Group.setText(getLightGroup());
-		 * dlg.lM01RepeatTime.setVisible(true);
-		 * dlg.tfM01RepeatTime.setVisible(true); if (isSectored()) {
-		 * dlg.rbM01Fired1.setSelected(false); dlg.rbM01FiredN.setSelected(true); 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); } else { } } else { } } else {
-		 */}
+/*
+		dlg.lM01NameMark.setText(getName());
+
+		dlg.bM01Save.setEnabled(true);
+
+		dlg.cM01TopMark.setSelected(hasTopMark());
+		dlg.cM01Fired.setSelected(isFired());
+
+		dlg.tfM01RepeatTime.setText(getLightPeriod());
+
+		dlg.tfM01Name.setText(getName());
+		dlg.tfM01Name.setEnabled(true);
+*/
+		if (hasRadar()) {
+			dlg.panelMain.radarIcon.setIcon(new ImageIcon(getClass().getResource("/images/Radar_Reflector_355.png")));
+		}	else if (hasRacon()) {
+			dlg.panelMain.radarIcon.setIcon(new ImageIcon(getClass().getResource("/images/Radar_Station.png")));
+//			if (getRaType() != 0) {
+//				String c = (String) dlg.cbM01Racon.getSelectedItem();
+//				if ((getRaType() == RATYPE_RACON) && !getRaconGroup().isEmpty())
+//					c += ("(" + getRaconGroup() + ")");
+//				dlg.lM01RadarMark.setText(c);
+//			}
+		}
+
+		if (hasFog()) {
+			dlg.panelMain.fogIcon.setIcon(new ImageIcon(getClass().getResource("/images/Fog_Signal.png")));
+//			if (getFogSound() != 0) {
+//				String c = (String) dlg.cbM01Fog.getSelectedItem();
+//				if (!getFogGroup().isEmpty())
+//					c += ("(" + getFogGroup() + ")");
+//				if (!getFogPeriod().isEmpty())
+//					c += (" " + getFogPeriod() + "s");
+//				dlg.lM01FogMark.setText(c);
+//			}
+		}
+
+		if (isFired()) {
+			String lp, c;
+			String tmp = null;
+			int i1;
+
+			Col col = getColour(Ent.LIGHT);
+			if (col == Col.WHITE) {
+				dlg.panelMain.lightIcon.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_120.png")));
+			} else if (col == Col.RED) {
+				dlg.panelMain.lightIcon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Red_120.png")));
+			} else if (col == Col.GREEN) {
+				dlg.panelMain.lightIcon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Green_120.png")));
+			} else {
+				dlg.panelMain.lightIcon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Magenta_120.png")));
+			}
+
+/*			c = getLightChar();
+			if (c.contains("+")) {
+				i1 = c.indexOf("+");
+				tmp = c.substring(i1, c.length());
+				c = c.substring(0, i1);
+				if (!getLightGroup().isEmpty()) {
+					c = c + "(" + getLightGroup() + ")";
+				}
+				if (tmp != null)
+					c = c + tmp;
+			} else if (!getLightGroup().isEmpty())
+				c = c + "(" + getLightGroup() + ")";
+			c = c + " " + getLightColour();
+			lp = getLightPeriod();
+			if (!lp.isEmpty())
+				c = c + " " + lp + "s";
+*/		}
+	}
 
 	public void saveSign() {
@@ -658,5 +636,5 @@
 		if (!name.isEmpty())
 			Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:name", name));
-		
+
 		String objStr = "";
 		switch (object) {
@@ -689,8 +667,5 @@
 			break;
 		case BOYSPP:
-			if (topShape == Top.MOORING)
-				objStr = "mooring";
-			else
-				objStr = "buoy_special_purpose";
+			objStr = "buoy_special_purpose";
 			break;
 		case LIGHTS:
@@ -709,4 +684,7 @@
 			objStr = "landmark";
 			break;
+		case MORFAC:
+			objStr = "mooring";
+			break;
 		}
 		if (!objStr.isEmpty()) {
@@ -724,5 +702,6 @@
 				break;
 			case LAT_PREF_STBD:
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":category", "preferred_channel_starboard"));
+				Main.main.undoRedo
+						.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":category", "preferred_channel_starboard"));
 				break;
 			case CARD_NORTH:
@@ -738,7 +717,8 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":category", "west"));
 				break;
-			}
-			if ((object == Obj.BOYSPP) && (topShape == Top.MOORING))
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:mooring:category", "mooring-buoy"));
+			case MOORING_BUOY:
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":category", "mooring_buoy"));
+				break;
+			}
 
 			switch (shape) {
@@ -774,5 +754,5 @@
 				break;
 			}
-			
+
 			switch (bodyColour) {
 			case WHITE:
@@ -805,37 +785,37 @@
 			case RED_GREEN_RED:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "red;green;red"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"horizontal stripes"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "horizontal stripes"));
 				break;
 			case GREEN_RED_GREEN:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "green;red;green"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"horizontal stripes"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "horizontal stripes"));
 				break;
 			case RED_WHITE:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "red;white"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"vertical stripes"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "vertical stripes"));
 				break;
 			case BLACK_YELLOW:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "black;yellow"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"horizontal stripes"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "horizontal stripes"));
 				break;
 			case BLACK_YELLOW_BLACK:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "black;yellow;black"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"horizontal stripes"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "horizontal stripes"));
 				break;
 			case YELLOW_BLACK:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "yellow;black"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"horizontal stripes"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "horizontal stripes"));
 				break;
 			case YELLOW_BLACK_YELLOW:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "yellow;black;yellow"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"horizontal stripes"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "horizontal stripes"));
 				break;
 			case BLACK_RED_BLACK:
 				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour", "black;red;black"));
-				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern",	"horizontal stripes"));
-				break;
-			}
-		}
-			
+				Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:" + objStr + ":colour_pattern", "horizontal stripes"));
+				break;
+			}
+		}
+
 		String top = "";
 		switch (topShape) {
@@ -928,5 +908,5 @@
 			}
 		}
-		
+
 		Col colour;
 		if (isFired()) {
@@ -954,6 +934,6 @@
 						Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:light:" + i + ":colour", "red"));
 						if ((Bearing1[i] != null) && (Bearing2[i] != null) && (Radius[i] != null))
-							Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:light:" + i, "red:" + Bearing1[i] + ":" + Bearing2[i]
-									+ ":" + Radius[i]));
+							Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:light:" + i, "red:" + Bearing1[i] + ":"
+									+ Bearing2[i] + ":" + Radius[i]));
 					} else if (colour.equals("G")) {
 						Main.main.undoRedo.add(new ChangePropertyCommand(dlg.node, "seamark:light:" + i + ":colour", "green"));
