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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 24808)
@@ -32,5 +32,4 @@
 
 	private SmedPluginManager manager;
-	private OSeaMAction dia = null;
 	public PanelMain panelMain = null;
 
@@ -63,5 +62,4 @@
 
 		manager = mngr;
-		dia = this;
 		String str = Main.pref.get("mappaint.style.sources");
 		if (!str.contains("dev.openseamap.org")) {
@@ -97,5 +95,5 @@
 		manager.showVisualMessage("");
 		if (ds == null) {
-			manager.showVisualMessage(tr("Active layer contains no OSM data"));
+			manager.showVisualMessage(Messages.getString("NoData"));
 			mark = new MarkUkn(this, null);
 			return;
@@ -106,5 +104,5 @@
 
 		if (nodes == 0) {
-			manager.showVisualMessage(tr("Please select a node"));
+			manager.showVisualMessage(Messages.getString("SelectNode"));
 			mark = new MarkUkn(this, null);
 			return;
@@ -112,5 +110,5 @@
 
 		if (nodes > 1) {
-			manager.showVisualMessage(tr("Please select only one node"));
+			manager.showVisualMessage(Messages.getString("OneNode"));
 			mark = new MarkUkn(this, null);
 			return;
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages.properties
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages.properties	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages.properties	(revision 24808)
@@ -54,2 +54,5 @@
 SquareDayTip=Square daymark
 MooringTopTip=Mooring
+NoData=Active layer contains no OSM data
+SelectNode=Please select a node
+OneNode=Please select only one node
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_de.properties
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_de.properties	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_de.properties	(revision 24808)
@@ -54,2 +54,5 @@
 SquareDayTip=Square daymark
 MooringTopTip=Mooring
+NoData=Active layer contains no OSM data
+SelectNode=Please select a node
+OneNode=Please select only one node
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_en.properties
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_en.properties	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_en.properties	(revision 24808)
@@ -54,2 +54,5 @@
 SquareDayTip=Square daymark
 MooringTopTip=Mooring
+NoData=Active layer contains no OSM data
+SelectNode=Please select a node
+OneNode=Please select only one node
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java	(revision 24808)
@@ -30,4 +30,5 @@
 	private JRadioButton prefStbdButton = null;
 	private JRadioButton safeWaterButton = null;
+	private ActionListener alCat = null;
 	private PanelPort panelPort = null;
 	private PanelStbd panelStbd = null;
@@ -37,5 +38,4 @@
 
 	public PanelChan() {
-		super();
 		panelPort = new PanelPort();
 		panelPort.setBounds(new Rectangle(55, 0, 225, 160));
@@ -53,8 +53,4 @@
 		panelSafeWater.setBounds(new Rectangle(55, 0, 225, 160));
 		panelSafeWater.setVisible(false);
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(panelPort, null);
@@ -74,5 +70,5 @@
 		catButtons.add(prefStbdButton);
 		catButtons.add(safeWaterButton);
-		ActionListener alCat = new ActionListener() {
+		alCat = new ActionListener() {
 			public void actionPerformed(java.awt.event.ActionEvent e) {
 				if (portButton.isSelected()) {
@@ -118,4 +114,14 @@
 		prefStbdButton.addActionListener(alCat);
 		safeWaterButton.addActionListener(alCat);
+	}
+
+	public void clearSelections() {
+		catButtons.clearSelection();
+		alCat.actionPerformed(null);
+		panelPort.clearSelections();
+		panelStbd.clearSelections();
+		panelPrefPort.clearSelections();
+		panelPrefStbd.clearSelections();
+		panelSafeWater.clearSelections();
 	}
 
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java	(revision 24808)
@@ -37,11 +37,8 @@
 	public JRadioButton violetButton = null;
 	public JRadioButton blackButton = null;
+	private ActionListener alColour = null;
 
 	public PanelCol() {
 		super();
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 
@@ -67,5 +64,5 @@
 		colourButtons.add(violetButton);
 		colourButtons.add(blackButton);
-		ActionListener alColour = new ActionListener() {
+		alColour = new ActionListener() {
 			public void actionPerformed(java.awt.event.ActionEvent e) {
 				offButton.setBorderPainted(offButton.isSelected());
@@ -93,4 +90,9 @@
 	}
 
+	public void clearSelections() {
+		colourButtons.clearSelection();
+		alColour.actionPerformed(null);
+	}
+
 	private JRadioButton getOffButton() {
 		if (offButton == null) {
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelFog.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelFog.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelFog.java	(revision 24808)
@@ -23,12 +23,12 @@
 public class PanelFog extends JPanel {
 
-
 	public PanelFog() {
 		super();
-		initialize();
+		this.setLayout(null);
 	}
 
-	private void initialize() {
-		this.setLayout(null);
+	public void clearSelections() {
+		
 	}
+
 }
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java	(revision 24808)
@@ -5,24 +5,16 @@
 
 import java.awt.Color;
-import java.awt.Dimension;
 import java.awt.Rectangle;
-import java.awt.Font;
 
 import javax.swing.ButtonGroup;
 import javax.swing.ImageIcon;
-import javax.swing.JLabel;
-import javax.swing.JTextField;
-import javax.swing.JComboBox;
-import javax.swing.JCheckBox;
 import javax.swing.JRadioButton;
 
 import oseam.Messages;
 import oseam.dialogs.OSeaMAction;
-import oseam.panels.PanelMain;
 import oseam.seamarks.SeaMark.Cat;
 import oseam.seamarks.SeaMark.Col;
 import oseam.seamarks.SeaMark.Styl;
 
-import java.awt.Cursor;
 import java.awt.event.ActionListener;
 
@@ -36,4 +28,5 @@
 	public JRadioButton westButton = null;
 	public JRadioButton isolButton = null;
+	private ActionListener alCat = null;
 
 	private ButtonGroup shapeButtons = null;
@@ -43,4 +36,5 @@
 	public JRadioButton beaconButton = null;
 	public JRadioButton towerButton = null;
+	private ActionListener alShape = null;
 
 	public PanelHaz(OSeaMAction dia) {
@@ -58,5 +52,5 @@
 		catButtons.add(westButton);
 		catButtons.add(isolButton);
-		ActionListener alCat = new ActionListener() {
+		alCat = new ActionListener() {
 			public void actionPerformed(java.awt.event.ActionEvent e) {
 				if (northButton.isSelected()) {
@@ -64,4 +58,6 @@
 					dlg.mark.setCategory(Cat.CARD_NORTH);
 					dlg.mark.setColour(Col.BLACK_YELLOW);
+					dlg.panelMain.panelTop.northTopButton.doClick();
+					dlg.panelMain.panelTop.panelCol.blackButton.doClick();
 				} else {
 					northButton.setBorderPainted(false);
@@ -71,4 +67,6 @@
 					dlg.mark.setCategory(Cat.CARD_SOUTH);
 					dlg.mark.setColour(Col.YELLOW_BLACK);
+					dlg.panelMain.panelTop.southTopButton.doClick();
+					dlg.panelMain.panelTop.panelCol.blackButton.doClick();
 				} else {
 					southButton.setBorderPainted(false);
@@ -78,4 +76,6 @@
 					dlg.mark.setCategory(Cat.CARD_EAST);
 					dlg.mark.setColour(Col.BLACK_YELLOW_BLACK);
+					dlg.panelMain.panelTop.eastTopButton.doClick();
+					dlg.panelMain.panelTop.panelCol.blackButton.doClick();
 				} else {
 					eastButton.setBorderPainted(false);
@@ -85,4 +85,6 @@
 					dlg.mark.setCategory(Cat.CARD_WEST);
 					dlg.mark.setColour(Col.YELLOW_BLACK_YELLOW);
+					dlg.panelMain.panelTop.westTopButton.doClick();
+					dlg.panelMain.panelTop.panelCol.blackButton.doClick();
 				} else {
 					westButton.setBorderPainted(false);
@@ -108,5 +110,5 @@
 		shapeButtons.add(beaconButton);
 		shapeButtons.add(towerButton);
-		ActionListener alShape = new ActionListener() {
+		alShape = new ActionListener() {
 			public void actionPerformed(java.awt.event.ActionEvent e) {
 				if (pillarButton.isSelected()) {
@@ -149,4 +151,11 @@
 	}
 
+	public void clearSelections() {
+		catButtons.clearSelection();
+		alCat.actionPerformed(null);
+		shapeButtons.clearSelection();
+		alShape.actionPerformed(null);
+	}
+
 	private JRadioButton getNothButton() {
 		if (northButton == null) {
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java	(revision 24808)
@@ -33,8 +33,4 @@
 	public PanelLights() {
 		super();
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(getHouseButton(), null);
@@ -63,4 +59,8 @@
 		vesselButton.addActionListener(alCat);
 		floatButton.addActionListener(alCat);
+	}
+
+	public void clearSelections() {
+		
 	}
 
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 24808)
@@ -29,11 +29,12 @@
 		panelCol = new PanelCol();
 		panelCol.setBounds(new Rectangle(0, 0, 34, 160));
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(panelCol, null);
 		panelCol.blackButton.setVisible(false);
 	}
+
+	public void clearSelections() {
+		
+	}
+
 }
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java	(revision 24808)
@@ -29,5 +29,5 @@
 	private JLabel fogIcon = null;
 	private JLabel nameLabel = null;
-	private JTextField nameBox = null;
+	public JTextField nameBox = null;
 	private JButton saveButton = null;
 	public ButtonGroup typeButtons = null;
@@ -36,19 +36,19 @@
 	public JRadioButton specButton = null;
 	public JRadioButton lightsButton = null;
-	private ActionListener alType;
+	private ActionListener alType = null;
 	private ButtonGroup miscButtons = null;
-	private JRadioButton topButton = null;
-	private JRadioButton fogButton = null;
-	private JRadioButton radarButton = null;
-	private JRadioButton litButton = null;
-	private ActionListener alMisc;
+	public JRadioButton topButton = null;
+	public JRadioButton fogButton = null;
+	public JRadioButton radarButton = null;
+	public JRadioButton litButton = null;
+	private ActionListener alMisc = null;
 	public PanelChan panelChan = null;
 	public PanelHaz panelHaz = null;
 	public PanelSpec panelSpec = null;
 	public PanelLights panelLights = null;
-	private PanelTop panelTop = null;
-	private PanelFog panelFog = null;
-	private PanelRadar panelRadar = null;
-	private PanelLit panelLit = null;
+	public PanelTop panelTop = null;
+	public PanelFog panelFog = null;
+	public PanelRadar panelRadar = null;
+	public PanelLit panelLit = null;
 
 	public PanelMain(OSeaMAction dia) {
@@ -221,4 +221,18 @@
 		miscButtons.clearSelection();
 		alMisc.actionPerformed(null);
+		shapeIcon.setIcon(null);
+		lightIcon.setIcon(null);
+		topIcon.setIcon(null);
+		reflIcon.setIcon(null);
+		radarIcon.setIcon(null);
+		fogIcon.setIcon(null);
+		panelChan.clearSelections();
+		panelHaz.clearSelections();
+		panelSpec.clearSelections();
+		panelLights.clearSelections();
+		panelTop.clearSelections();
+		panelFog.clearSelections();
+		panelRadar.clearSelections();
+		panelLit.clearSelections();
 	}
 
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java	(revision 24808)
@@ -38,8 +38,4 @@
 	public PanelPort() {
 		super();
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(getRegionAButton(), null);
@@ -91,4 +87,8 @@
 		towerButton.addActionListener(alShape);
 		perchButton.addActionListener(alShape);
+	}
+
+	public void clearSelections() {
+		
 	}
 
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPrefPort.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPrefPort.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPrefPort.java	(revision 24808)
@@ -37,8 +37,4 @@
 	public PanelPrefPort() {
 		super();
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(getRegionAButton(), null);
@@ -86,4 +82,8 @@
 		beaconButton.addActionListener(alShape);
 		towerButton.addActionListener(alShape);
+	}
+
+	public void clearSelections() {
+		
 	}
 
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPrefStbd.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPrefStbd.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPrefStbd.java	(revision 24808)
@@ -37,8 +37,4 @@
 	public PanelPrefStbd() {
 		super();
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(getRegionAButton(), null);
@@ -86,4 +82,8 @@
 		beaconButton.addActionListener(alShape);
 		towerButton.addActionListener(alShape);
+	}
+
+	public void clearSelections() {
+		
 	}
 
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelRadar.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelRadar.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelRadar.java	(revision 24808)
@@ -26,9 +26,10 @@
 	public PanelRadar() {
 		super();
-		initialize();
+		this.setLayout(null);
 	}
 
-	private void initialize() {
-		this.setLayout(null);
+	public void clearSelections() {
+		
 	}
+
 }
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSafeWater.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSafeWater.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSafeWater.java	(revision 24808)
@@ -33,8 +33,4 @@
 	public PanelSafeWater() {
 		super();
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(getPillarButton(), null);
@@ -64,4 +60,8 @@
 		barrelButton.addActionListener(alShape);
 		floatButton.addActionListener(alShape);
+	}
+
+	public void clearSelections() {
+		
 	}
 
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java	(revision 24808)
@@ -43,8 +43,4 @@
 		panelCol = new PanelCol();
 		panelCol.setBounds(new Rectangle(9, 0, 34, 160));
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 
@@ -98,4 +94,8 @@
 	}
 
+	public void clearSelections() {
+		
+	}
+
 	private JRadioButton getPillarButton() {
 		if (pillarButton == null) {
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java	(revision 24808)
@@ -38,8 +38,4 @@
 	public PanelStbd() {
 		super();
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(getRegionAButton(), null);
@@ -91,4 +87,8 @@
 		towerButton.addActionListener(alShape);
 		perchButton.addActionListener(alShape);
+	}
+
+	public void clearSelections() {
+		
 	}
 
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java	(revision 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java	(revision 24808)
@@ -25,22 +25,23 @@
 public class PanelTop extends JPanel {
 
-	private PanelCol panelCol = null;
+	public PanelCol panelCol = null;
 	private ButtonGroup topButtons = null;
-	private JRadioButton noTopButton = null;
-	private JRadioButton canTopButton = null;
-	private JRadioButton coneTopButton = null;
-	private JRadioButton sphereTopButton = null;
-	private JRadioButton XTopButton = null;
-	private JRadioButton northTopButton = null;
-	private JRadioButton southTopButton = null;
-	private JRadioButton eastTopButton = null;
-	private JRadioButton westTopButton = null;
-	private JRadioButton spheres2TopButton = null;
-	private JRadioButton boardDayButton = null;
-	private JRadioButton diamondDayButton = null;
-	private JRadioButton triangleDayButton = null;
-	private JRadioButton triangleInvDayButton = null;
-	private JRadioButton squareDayButton = null;
-	private JRadioButton mooringTopButton = null;
+	public JRadioButton noTopButton = null;
+	public JRadioButton canTopButton = null;
+	public JRadioButton coneTopButton = null;
+	public JRadioButton sphereTopButton = null;
+	public JRadioButton XTopButton = null;
+	public JRadioButton northTopButton = null;
+	public JRadioButton southTopButton = null;
+	public JRadioButton eastTopButton = null;
+	public JRadioButton westTopButton = null;
+	public JRadioButton spheres2TopButton = null;
+	public JRadioButton boardDayButton = null;
+	public JRadioButton diamondDayButton = null;
+	public JRadioButton triangleDayButton = null;
+	public JRadioButton triangleInvDayButton = null;
+	public JRadioButton squareDayButton = null;
+	public JRadioButton mooringTopButton = null;
+	ActionListener alTop = null;
 
 	public PanelTop() {
@@ -48,8 +49,4 @@
 		panelCol = new PanelCol();
 		panelCol.setBounds(new Rectangle(0, 0, 34, 160));
-		initialize();
-	}
-
-	private void initialize() {
 		this.setLayout(null);
 		this.add(panelCol, null);
@@ -87,5 +84,5 @@
 		topButtons.add(squareDayButton);
 		topButtons.add(mooringTopButton);
-		ActionListener alTop = new ActionListener() {
+		alTop = new ActionListener() {
 			public void actionPerformed(java.awt.event.ActionEvent e) {
 				noTopButton.setBorderPainted(noTopButton.isSelected());
@@ -125,4 +122,10 @@
 	}
 
+	public void clearSelections() {
+		topButtons.clearSelection();
+		alTop.actionPerformed(null);
+		panelCol.clearSelections();
+	}
+
 	private JRadioButton getNoTopButton() {
 		if (noTopButton == null) {
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java	(revision 24808)
@@ -4,4 +4,6 @@
 import javax.swing.ImageIcon;
 
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.data.osm.Node;
 
@@ -79,6 +81,5 @@
 				dlg.panelMain.panelHaz.sparButton.doClick();
 			}
-		} else if (keys.containsKey("seamark:beacon_cardinal:colour")) {
-			if (keys.containsKey("seamark:beacon_cardinal:shape")) {
+		} else if (keys.containsKey("seamark:beacon_cardinal:shape")) {
 				str = keys.get("seamark:beacon_cardinal:shape");
 				if (str.equals("tower")) {
@@ -87,7 +88,4 @@
 					dlg.panelMain.panelHaz.beaconButton.doClick();
 				}
-			} else {
-				dlg.panelMain.panelHaz.beaconButton.doClick();
-			}
 		} else if (keys.containsKey("seamark:type")
 				&& (keys.get("seamark:type").equals("light_float"))) {
@@ -95,7 +93,6 @@
 		}
 
-		// refreshLights();
-		// parseLights(keys);
-		// parseFogRadar(keys);
+		parseLights(keys);
+		parseFogRadar(keys);
 
 		// dlg.cbM01CatOfMark.setSelectedIndex(getMarkIndex());
@@ -105,18 +102,4 @@
 	}
 
-	/*
-	 * public void refreshLights() { dlg.cbM01Kennung.removeAllItems();
-	 * dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212"));
-	 * //$NON-NLS-1$ dlg.cbM01Kennung.setSelectedIndex(0);
-	 * 
-	 * switch (getMarkIndex()) { case CARD_NORTH: dlg.cbM01Kennung.addItem("Q");
-	 * //$NON-NLS-1$ dlg.cbM01Kennung.addItem("VQ"); //$NON-NLS-1$ break; case
-	 * CARD_EAST: dlg.cbM01Kennung.addItem("Q(3)"); //$NON-NLS-1$
-	 * dlg.cbM01Kennung.addItem("VQ(3)"); //$NON-NLS-1$ break; case CARD_SOUTH:
-	 * dlg.cbM01Kennung.addItem("Q(6)+LFl"); //$NON-NLS-1$
-	 * dlg.cbM01Kennung.addItem("VQ(6)+LFl"); //$NON-NLS-1$ break; case
-	 * CARD_WEST: dlg.cbM01Kennung.addItem("Q(9)"); //$NON-NLS-1$
-	 * dlg.cbM01Kennung.addItem("VQ(9)"); //$NON-NLS-1$ break; } }
-	 */
 	public boolean isValid() {
 		return (getCategory() != Cat.UNKNOWN_CAT)
@@ -124,35 +107,36 @@
 	}
 
-	/*
-	 * public void setLightColour() { super.setLightColour("W"); }
-	 */
+	public void setLightColour() {
+		super.setLightColour("W");
+	}
+
 	public void paintSign() {
 		/*
-		 * if (dlg.paintlock) return; super.paintSign();
+		if (dlg.paintlock) return; super.paintSign();
 		 */
 		if (isValid()) {
 			/*
-			 * dlg.tfM01Name.setEnabled(true); dlg.tfM01Name.setText(getName());
-			 * dlg.cM01TopMark.setSelected(true);
-			 * dlg.cM01TopMark.setVisible(true);
-			 * dlg.cM01TopMark.setEnabled(false);
-			 * dlg.cM01Radar.setVisible(true); dlg.cM01Racon.setVisible(true);
-			 * dlg.cM01Fog.setVisible(true); dlg.cM01Fired.setEnabled(true);
-			 * dlg.cM01Fired.setVisible(true); dlg.tfM01Group.setVisible(false);
-			 * dlg.lM01Group.setVisible(false); if (!isSectored()) {
-			 * dlg.cbM01Colour.setVisible(false);
-			 * dlg.lM01Colour.setVisible(false); }
-			 * dlg.rbM01Fired1.setVisible(false);
-			 * dlg.rbM01FiredN.setVisible(false);
-			 * dlg.lM01Height.setVisible(false);
-			 * dlg.tfM01Height.setVisible(false);
-			 * dlg.lM01Range.setVisible(false);
-			 * dlg.tfM01Range.setVisible(false);
-			 * 
-			 * if (isFired()) { switch (getStyleIndex()) { case CARD_BEACON:
-			 * case CARD_TOWER: case CARD_FLOAT:
-			 * dlg.lM01Height.setVisible(true);
-			 * dlg.tfM01Height.setVisible(true); dlg.lM01Range.setVisible(true);
-			 * dlg.tfM01Range.setVisible(true); break; default: } }
+			dlg.tfM01Name.setEnabled(true); dlg.tfM01Name.setText(getName());
+			dlg.cM01TopMark.setSelected(true);
+			dlg.cM01TopMark.setVisible(true);
+			dlg.cM01TopMark.setEnabled(false);
+			dlg.cM01Radar.setVisible(true); dlg.cM01Racon.setVisible(true);
+			dlg.cM01Fog.setVisible(true); dlg.cM01Fired.setEnabled(true);
+			dlg.cM01Fired.setVisible(true); dlg.tfM01Group.setVisible(false);
+			dlg.lM01Group.setVisible(false); if (!isSectored()) {
+			dlg.cbM01Colour.setVisible(false);
+			dlg.lM01Colour.setVisible(false); }
+			dlg.rbM01Fired1.setVisible(false);
+			dlg.rbM01FiredN.setVisible(false);
+			dlg.lM01Height.setVisible(false);
+			dlg.tfM01Height.setVisible(false);
+			dlg.lM01Range.setVisible(false);
+			dlg.tfM01Range.setVisible(false);
+			
+			if (isFired()) { switch (getStyleIndex()) { case CARD_BEACON:
+			case CARD_TOWER: case CARD_FLOAT:
+			dlg.lM01Height.setVisible(true);
+			dlg.tfM01Height.setVisible(true); dlg.lM01Range.setVisible(true);
+			dlg.tfM01Range.setVisible(true); break; default: } }
 			 */
 			String image = "/images/Cardinal";
@@ -204,109 +188,156 @@
 
 	public void saveSign() {
-		/*
-		 * Node node = getNode(); if (node == null) { return; }
-		 * 
-		 * String shape = ""; //$NON-NLS-1$
-		 * 
-		 * switch (getStyleIndex()) { case CARD_PILLAR:
-		 * super.saveSign("buoy_cardinal"); //$NON-NLS-1$
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:buoy_cardinal:shape", "pillar")); //$NON-NLS-1$
-		 * //$NON-NLS-2$ break; case CARD_SPAR: super.saveSign("buoy_cardinal");
-		 * //$NON-NLS-1$ Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:buoy_cardinal:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
-		 * break; case CARD_BEACON: super.saveSign("beacon_cardinal");
-		 * //$NON-NLS-1$ break; case CARD_TOWER:
-		 * super.saveSign("beacon_cardinal"); //$NON-NLS-1$
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:beacon_cardinal:shape", "tower")); //$NON-NLS-1$
-		 * //$NON-NLS-2$ break; case CARD_FLOAT: super.saveSign("light_float");
-		 * //$NON-NLS-1$ break; default: }
-		 * 
-		 * switch (getStyleIndex()) { case CARD_PILLAR: case CARD_SPAR: switch
-		 * (getMarkIndex()) { case SeaMark.CARD_NORTH:
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:buoy_cardinal:category", "north")); //$NON-NLS-1$
-		 * //$NON-NLS-2$ Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:buoy_cardinal:colour", "black;yellow")); //$NON-NLS-1$
-		 * //$NON-NLS-2$ shape = "2 cones up"; //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_EAST: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:buoy_cardinal:category",
-		 * "east")); //$NON-NLS-1$ //$NON-NLS-2$ Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:buoy_cardinal:colour",
-		 * "black;yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$ shape =
-		 * "2 cones base together"; //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_SOUTH: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:buoy_cardinal:category",
-		 * "south")); //$NON-NLS-1$ //$NON-NLS-2$ Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:buoy_cardinal:colour",
-		 * "yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$ shape = "2 cones down";
-		 * //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_WEST: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:buoy_cardinal:category",
-		 * "west")); //$NON-NLS-1$ //$NON-NLS-2$ Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:buoy_cardinal:colour",
-		 * "yellow;black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$ shape =
-		 * "2 cones point together"; //$NON-NLS-1$ break; }
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:buoy_cardinal:colour_pattern", "horizontal stripes"));
-		 * //$NON-NLS-1$ //$NON-NLS-2$ break; case CARD_BEACON: case CARD_TOWER:
-		 * switch (getMarkIndex()) { case SeaMark.CARD_NORTH:
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:beacon_cardinal:category", "north")); //$NON-NLS-1$
-		 * //$NON-NLS-2$ Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:beacon_cardinal:colour", "black;yellow")); //$NON-NLS-1$
-		 * //$NON-NLS-2$ shape = "2 cones up"; //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_EAST: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:beacon_cardinal:category",
-		 * "east")); //$NON-NLS-1$ //$NON-NLS-2$ Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:beacon_cardinal:colour",
-		 * "black;yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$ shape =
-		 * "2 cones base together"; //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_SOUTH: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:beacon_cardinal:category",
-		 * "south")); //$NON-NLS-1$ //$NON-NLS-2$ Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:beacon_cardinal:colour",
-		 * "yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$ shape = "2 cones down";
-		 * //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_WEST: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:beacon_cardinal:category",
-		 * "west")); //$NON-NLS-1$ //$NON-NLS-2$ Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:beacon_cardinal:colour",
-		 * "yellow;black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$ shape =
-		 * "2 cones point together"; //$NON-NLS-1$ break; }
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:beacon_cardinal:colour_pattern", "horizontal stripes"));
-		 * //$NON-NLS-1$ //$NON-NLS-2$ break; case CARD_FLOAT: switch
-		 * (getMarkIndex()) { case SeaMark.CARD_NORTH:
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:light_float:colour", "black;yellow")); //$NON-NLS-1$
-		 * //$NON-NLS-2$ shape = "2 cones up"; //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_EAST: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:light_float:colour",
-		 * "black;yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$ shape =
-		 * "2 cones base together"; //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_SOUTH: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:light_float:colour",
-		 * "yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$ shape = "2 cones down";
-		 * //$NON-NLS-1$ break;
-		 * 
-		 * case SeaMark.CARD_WEST: Main.main.undoRedo.add(new
-		 * ChangePropertyCommand(node, "seamark:light_float:colour",
-		 * "yellow;black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$ shape =
-		 * "2 cones point together"; //$NON-NLS-1$ break; }
-		 * Main.main.undoRedo.add(new ChangePropertyCommand(node,
-		 * "seamark:light_float:colour_pattern", "horizontal stripes"));
-		 * //$NON-NLS-1$ //$NON-NLS-2$ break; } saveTopMarkData(shape, "black");
-		 * //$NON-NLS-1$ saveLightData(); //$NON-NLS-1$ saveRadarFogData();
-		 */}
+		Node node = getNode();
+		if (node == null)
+			return;
+
+		String shape = "";
+
+		switch (getShape()) {
+		case PILLAR:
+			super.saveSign("buoy_cardinal");
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_cardinal:shape", "pillar"));
+			break;
+		case SPAR:
+			super.saveSign("buoy_cardinal");
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_cardinal:shape", "spar"));
+			break;
+		case BEACON:
+			super.saveSign("beacon_cardinal");
+			break;
+		case TOWER:
+			super.saveSign("beacon_cardinal");
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_cardinal:shape", "tower"));
+			break;
+		case FLOAT:
+			super.saveSign("light_float");
+			break;
+		default:
+		}
+
+		switch (getShape()) {
+		case PILLAR:
+		case SPAR:
+			switch (getCategory()) {
+			case CARD_NORTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "north"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "black;yellow"));
+				shape = "2 cones up";
+				break;
+
+			case CARD_EAST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "east"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "black;yellow;black"));
+				shape = "2 cones base together";
+				break;
+
+			case CARD_SOUTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "south"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "yellow;black"));
+				shape = "2 cones down";
+				break;
+
+			case CARD_WEST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "west"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "yellow;black;yellow"));
+				shape = "2 cones point together";
+				break;
+			}
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_cardinal:colour_pattern",
+					"horizontal stripes"));
+			break;
+			
+		case BEACON:
+		case TOWER:
+			switch (getCategory()) {
+			case CARD_NORTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "north"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:colour", "black;yellow"));
+				shape = "2 cones up";
+				break;
+
+			case CARD_EAST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "east"));
+				Main.main.undoRedo
+						.add(new ChangePropertyCommand(node,
+								"seamark:beacon_cardinal:colour",
+								"black;yellow;black"));
+				shape = "2 cones base together";
+				break;
+
+			case CARD_SOUTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "south"));
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:colour", "yellow;black"));
+				shape = "2 cones down";
+				break;
+
+			case CARD_WEST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "west"));
+				Main.main.undoRedo
+						.add(new ChangePropertyCommand(node,
+								"seamark:beacon_cardinal:colour",
+								"yellow;black;yellow"));
+				shape = "2 cones point together";
+				break;
+			}
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_cardinal:colour_pattern",
+					"horizontal stripes"));
+			break;
+			
+		case FLOAT:
+			switch (getCategory()) {
+			case CARD_NORTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "black;yellow"));
+				shape = "2 cones up";
+				break;
+
+			case CARD_EAST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "black;yellow;black"));
+				shape = "2 cones base together";
+				break;
+
+			case CARD_SOUTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "yellow;black"));
+				shape = "2 cones down";
+				break;
+
+			case CARD_WEST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "yellow;black;yellow"));
+				shape = "2 cones point together";
+				break;
+			}
+			Main.main.undoRedo
+					.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour_pattern",
+							"horizontal stripes"));
+			break;
+		}
+		saveTopMarkData(shape, "black");
+		saveLightData();
+		saveRadarFogData();
+	}
 
 }
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java	(revision 24808)
@@ -7,4 +7,6 @@
 import oseam.dialogs.OSeaMAction;
 import oseam.seamarks.SeaMark;
+import oseam.seamarks.SeaMark.Cat;
+import oseam.seamarks.SeaMark.Styl;
 
 public class MarkIsol extends SeaMark {
@@ -18,88 +20,60 @@
 		Map<String, String> keys;
 		keys = getNode().getKeys();
-/*
-		dlg.cbM01TypeOfMark.setSelectedIndex(ISOLATED_DANGER);
-
-		dlg.cbM01StyleOfMark.removeAllItems();
-		dlg.cbM01StyleOfMark.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
-		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
-		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
-		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
-		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
-		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
-		dlg.cbM01StyleOfMark.setVisible(true);
-		dlg.lM01StyleOfMark.setVisible(true);
-
-		setBuoyIndex(ISOLATED_DANGER);
-		setColour(SeaMark.BLACK_RED_BLACK);
-		setLightColour("W"); //$NON-NLS-1$
-		setTopMark(true);
-		setRegion(Main.pref.get("tomsplugin.IALA").equals("B")); //$NON-NLS-1$ //$NON-NLS-2$
-
-		if (keys.containsKey("name")) //$NON-NLS-1$
-			setName(keys.get("name")); //$NON-NLS-1$
-
-		if (keys.containsKey("seamark:name")) //$NON-NLS-1$
-			setName(keys.get("seamark:name")); //$NON-NLS-1$
-
-		if (keys.containsKey("seamark:buoy_isolated_danger:name")) //$NON-NLS-1$
-			setName(keys.get("seamark:buoy_isolated_danger:name")); //$NON-NLS-1$
-		else if (keys.containsKey("seamark:beacon_isolated_danger:name")) //$NON-NLS-1$
-			setName(keys.get("seamark:beacon_isolated_danger:name")); //$NON-NLS-1$
-		else if (keys.containsKey("seamark:light_float:name")) //$NON-NLS-1$
-			setName(keys.get("seamark:light_float:name")); //$NON-NLS-1$
-
-		if (keys.containsKey("seamark:buoy_isolated_danger:shape")) { //$NON-NLS-1$
-			str = keys.get("seamark:buoy_isolated_danger:shape"); //$NON-NLS-1$
-
-			if (str.equals("pillar")) //$NON-NLS-1$
-				setStyleIndex(ISOL_PILLAR);
-			else if (str.equals("spar")) //$NON-NLS-1$
-				setStyleIndex(ISOL_SPAR);
-		} else if (keys.containsKey("seamark:beacon_isolated_danger:shape")) { //$NON-NLS-1$
-				str = keys.get("seamark:beacon_isolated_danger:shape"); //$NON-NLS-1$
-
-				if (str.equals("tower")) //$NON-NLS-1$
-					setStyleIndex(ISOL_TOWER);
-				else 
-					setStyleIndex(ISOL_BEACON);
-		} else if (keys.containsKey("seamark:type") //$NON-NLS-1$
-				&& (keys.get("seamark:type").equals("light_float"))) { //$NON-NLS-1$ //$NON-NLS-2$
-			setStyleIndex(ISOL_FLOAT);
-		}
-
-		if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
-			setStyleIndex(0);
-		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
-
-		if (keys.containsKey("seamark:topmark:shape") //$NON-NLS-1$
-				|| keys.containsKey("seamark:topmark:colour")) { //$NON-NLS-1$
-			setTopMark(true);
-		}
-		
-		refreshLights();
+
+		if (!dlg.panelMain.hazButton.isSelected())
+			dlg.panelMain.hazButton.doClick();
+
+		if (keys.containsKey("name"))
+			setName(keys.get("name"));
+
+		if (keys.containsKey("seamark:name"))
+			setName(keys.get("seamark:name"));
+
+		if (keys.containsKey("seamark:buoy_isolated_danger:name"))
+			setName(keys.get("seamark:buoy_isolated_danger:name"));
+		else if (keys.containsKey("seamark:beacon_isolated_danger:name"))
+			setName(keys.get("seamark:beacon_isolated_danger:name"));
+		else if (keys.containsKey("seamark:light_float:name"))
+			setName(keys.get("seamark:light_float:name"));
+
+		dlg.panelMain.panelHaz.isolButton.doClick();
+
+		if (keys.containsKey("seamark:buoy_isolated_danger:shape")) {
+			str = keys.get("seamark:buoy_isolated_danger:shape");
+
+			if (str.equals("pillar")) {
+				dlg.panelMain.panelHaz.pillarButton.doClick();
+			} else if (str.equals("spar")) {
+				dlg.panelMain.panelHaz.sparButton.doClick();
+			}
+		} else if (keys.containsKey("seamark:beacon_isolated_danger:shape")) {
+				str = keys.get("seamark:beacon_isolated_danger:shape");
+				if (str.equals("tower")) {
+					dlg.panelMain.panelHaz.towerButton.doClick();
+				} else {
+					dlg.panelMain.panelHaz.beaconButton.doClick();
+				}
+		} else if (keys.containsKey("seamark:type")
+				&& (keys.get("seamark:type").equals("light_float"))) {
+			dlg.panelMain.panelHaz.floatButton.doClick();
+		}
+
 		parseLights(keys);
 		parseFogRadar(keys);
 
-		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
-		dlg.tfM01Name.setText(getName());
-		dlg.cM01TopMark.setSelected(hasTopMark());
-*/	}
-/*
-	public void refreshLights() {
-		dlg.cbM01Kennung.removeAllItems();
-		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
-		dlg.cbM01Kennung.addItem("Fl(2)"); //$NON-NLS-1$
-		dlg.cbM01Kennung.setSelectedIndex(0);
+//		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
+//		dlg.tfM01Name.setText(getName());
+//		dlg.cM01TopMark.setSelected(hasTopMark());
 	}
 
 	public boolean isValid() {
-		return (getBuoyIndex() > 0) && (getStyleIndex() > 0);
+		return (getCategory() != Cat.UNKNOWN_CAT)
+				&& (getShape() != Styl.UNKNOWN_SHAPE);
 	}
 
 	public void setLightColour() {
-		super.setLightColour("W"); //$NON-NLS-1$
-	}
-*/
+		super.setLightColour("W");
+	}
+
 	public void paintSign() {
 /*		if (dlg.paintlock)
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 24807)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 24808)
@@ -2,4 +2,7 @@
 
 import java.util.Iterator;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.openstreetmap.josm.Main;
@@ -11,15 +14,23 @@
 abstract public class SeaMark {
 
-	public enum Type {UNKNOWN_TYPE, LATERAL, CARDINAL, SAFE_WATER, ISOLATED_DANGER, SPECIAL_PURPOSE, LIGHT}
-
-	public enum Cat {UNKNOWN_CAT, PORT_HAND, STARBOARD_HAND, PREF_PORT_HAND, PREF_STARBOARD_HAND, CARD_NORTH, CARD_EAST, CARD_SOUTH, CARD_WEST, LIGHT_HOUSE, LIGHT_MAJOR, LIGHT_MINOR, LIGHT_VESSEL}
+	public enum Type {
+		UNKNOWN_TYPE, LATERAL, CARDINAL, SAFE_WATER, ISOLATED_DANGER, SPECIAL_PURPOSE, LIGHT
+	}
+
+	public enum Cat {
+		UNKNOWN_CAT, PORT_HAND, STARBOARD_HAND, PREF_PORT_HAND, PREF_STARBOARD_HAND, CARD_NORTH, CARD_EAST, CARD_SOUTH, CARD_WEST, LIGHT_HOUSE, LIGHT_MAJOR, LIGHT_MINOR, LIGHT_VESSEL
+	}
 
 	public final static boolean IALA_A = false;
 	public final static boolean IALA_B = true;
 
-	public enum Styl {UNKNOWN_SHAPE, PILLAR, SPAR, CAN, CONE, SPHERE, BARREL, FLOAT, SUPER, BEACON, TOWER, STAKE, PERCH}
-
-	public enum Col {UNKNOWN_COLOUR, RED, GREEN, RED_GREEN_RED, GREEN_RED_GREEN, RED_WHITE, BLACK_YELLOW, BLACK_YELLOW_BLACK, YELLOW_BLACK, YELLOW_BLACK_YELLOW, BLACK_RED_BLACK, YELLOW}
-	
+	public enum Styl {
+		UNKNOWN_SHAPE, PILLAR, SPAR, CAN, CONE, SPHERE, BARREL, FLOAT, SUPER, BEACON, TOWER, STAKE, PERCH
+	}
+
+	public enum Col {
+		UNKNOWN_COLOUR, RED, GREEN, RED_GREEN_RED, GREEN_RED_GREEN, RED_WHITE, BLACK_YELLOW, BLACK_YELLOW_BLACK, YELLOW_BLACK, YELLOW_BLACK_YELLOW, BLACK_RED_BLACK, YELLOW
+	}
+
 	public final static int WHITE_LIGHT = 1;
 	public final static int RED_LIGHT = 2;
@@ -68,8 +79,4 @@
 	}
 
-	public void setDlg(OSeaMAction dia) {
-		dlg = dia;
-	}
-
 	protected SeaMark(OSeaMAction dia, Node node) {
 		dlg = dia;
@@ -157,4 +164,117 @@
 	}
 
+	private boolean Radar = false;
+
+	public boolean hasRadar() {
+		return Radar;
+	}
+
+	public void setRadar(boolean radar) {
+		Radar = radar;
+	}
+
+	private boolean Racon = false;
+
+	public boolean hasRacon() {
+		return Racon;
+	}
+
+	public void setRacon(boolean racon) {
+		Racon = racon;
+	}
+
+	private int RaType = 0;
+
+	public int getRaType() {
+		return RaType;
+	}
+
+	public void setRaType(int type) {
+		RaType = type;
+	}
+
+	private String RaconGroup = "";
+
+	public String getRaconGroup() {
+		return RaconGroup;
+	}
+
+	public void setRaconGroup(String raconGroup) {
+		RaconGroup = raconGroup;
+	}
+
+	private boolean Fog = false;
+
+	public boolean hasFog() {
+		return Fog;
+	}
+
+	public void setFog(boolean fog) {
+		Fog = fog;
+	}
+
+	private int FogSound = 0;
+
+	public int getFogSound() {
+		return FogSound;
+	}
+
+	public void setFogSound(int sound) {
+		FogSound = sound;
+	}
+
+	private String FogGroup = "";
+
+	public String getFogGroup() {
+		return FogGroup;
+	}
+
+	public void setFogGroup(String group) {
+		FogGroup = group;
+	}
+
+	private String FogPeriod = "";
+
+	public String getFogPeriod() {
+		return FogPeriod;
+	}
+
+	public void setFogPeriod(String period) {
+		FogPeriod = period;
+	}
+
+	private boolean Fired = false;
+
+	public boolean isFired() {
+		return Fired;
+	}
+
+	public void setFired(boolean fired) {
+		Fired = fired;
+	}
+
+	private boolean Sectored = false;
+
+	public boolean isSectored() {
+		return Sectored;
+	}
+
+	public void setSectored(boolean sectored) {
+		Sectored = sectored;
+		if (sectored) {
+			LightColour[0] = "";
+		} else {
+			setSectorIndex(0);
+			setLightChar("");
+			setLightColour("");
+			setLightGroup("");
+			setHeight("");
+			setRange("");
+			setBearing1("");
+			setBearing2("");
+			setRadius("");
+		}
+	}
+
 	private int SectorIndex = 0;
 
@@ -165,4 +285,20 @@
 	public void setSectorIndex(int sector) {
 		SectorIndex = sector;
+	}
+
+	private String[] LightChar = new String[10];
+
+	public String getLightChar() {
+		if (LightChar[SectorIndex] == null)
+			return (LightChar[0]);
+		return LightChar[SectorIndex];
+	}
+
+	public void setLightChar(String lightChar) {
+		if (SectorIndex == 0) {
+			LightChar = new String[10];
+			LightChar[0] = lightChar;
+		} else if (LightChar[0].isEmpty())
+			LightChar[SectorIndex] = lightChar;
 	}
 
@@ -179,9 +315,446 @@
 	}
 
+	private String[] LightGroup = new String[10];
+
+	public String getLightGroup() {
+		if (LightGroup[SectorIndex] == null)
+			return (LightGroup[0]);
+		return LightGroup[SectorIndex];
+	}
+
+	public void setLightGroup(String lightGroup) {
+		if (SectorIndex == 0)
+			LightGroup = new String[10];
+		LightGroup[SectorIndex] = lightGroup;
+	}
+
+	protected void setLightGroup(Map<String, String> k) {
+		String s = "";
+		if (k.containsKey("seamark:light:group")) {
+			s = k.get("seamark:light:group");
+			setLightGroup(s);
+		}
+	}
+
+	private String[] Height = new String[10];
+
+	public String getHeight() {
+		if (Height[SectorIndex] == null)
+			return (Height[0]);
+		return Height[SectorIndex];
+	}
+
+	public void setHeight(String height) {
+		if (SectorIndex == 0)
+			Height = new String[10];
+		Height[SectorIndex] = height;
+	}
+
+	private String[] Range = new String[10];
+
+	public String getRange() {
+		if (Range[SectorIndex] == null)
+			return (Range[0]);
+		return Range[SectorIndex];
+	}
+
+	public void setRange(String range) {
+		if (SectorIndex == 0)
+			Range = new String[10];
+		Range[SectorIndex] = range;
+	}
+
+	private String[] Bearing1 = new String[10];
+
+	public String getBearing1() {
+		if (Bearing1[SectorIndex] == null)
+			return (Bearing1[0]);
+		return Bearing1[SectorIndex];
+	}
+
+	public void setBearing1(String bearing) {
+		if (SectorIndex == 0)
+			Bearing1 = new String[10];
+		Bearing1[SectorIndex] = bearing;
+	}
+
+	private String[] Bearing2 = new String[10];
+
+	public String getBearing2() {
+		if (Bearing2[SectorIndex] == null)
+			return (Bearing2[0]);
+		return Bearing2[SectorIndex];
+	}
+
+	public void setBearing2(String bearing) {
+		if (SectorIndex == 0)
+			Bearing2 = new String[10];
+		Bearing2[SectorIndex] = bearing;
+	}
+
+	private String[] Radius = new String[10];
+
+	public String getRadius() {
+		if (Radius[SectorIndex] == null)
+			return (Radius[0]);
+		return Radius[SectorIndex];
+	}
+
+	public void setRadius(String radius) {
+		if (SectorIndex == 0)
+			Radius = new String[10];
+		Radius[SectorIndex] = radius;
+	}
+
+	private String[] LightPeriod = new String[10];
+
+	public String getLightPeriod() {
+		if (LightPeriod[SectorIndex] == null)
+			return (LightPeriod[0]);
+		return LightPeriod[SectorIndex];
+	}
+
+	public void setLightPeriod(String lightPeriod) {
+		String regex = "^[\\d\\s.]+$";
+
+		if (!lightPeriod.isEmpty()) {
+
+			Pattern pat = Pattern.compile(regex);
+			Matcher matcher = pat.matcher(lightPeriod);
+
+			if (matcher.find()) {
+				setErrMsg(null);
+			} else {
+				setErrMsg("Must be a number");
+				lightPeriod = "";
+//				dlg.tfM01RepeatTime.requestFocus();
+			}
+		}
+		if (SectorIndex == 0)
+			LightPeriod = new String[10];
+		LightPeriod[SectorIndex] = lightPeriod;
+	}
+
 	public abstract void parseMark();
-	
+
+	public void parseLights(Map<String, String> k) {
+		setFired(false);
+		setSectored(false);
+		Iterator it = k.entrySet().iterator();
+		while (it.hasNext()) {
+			Map.Entry entry = (Map.Entry) it.next();
+			String key = (String) entry.getKey();
+			String value = ((String) entry.getValue()).trim();
+			if (key.contains("seamark:light:")) {
+				setFired(true);
+				int index = 0;
+				key = key.substring(14);
+				if (key.matches("^\\d:.*")) {
+					index = key.charAt(0) - '0';
+					key = key.substring(2);
+				} else if (key.matches("^\\d$")) {
+					index = key.charAt(0) - '0';
+					String values[] = value.split(":");
+					if (values[0].equals("red"))
+						LightColour[index] = "R";
+					else if (values[0].equals("green"))
+						LightColour[index] = "G";
+					else if (values[0].equals("white"))
+						LightColour[index] = "W";
+					if (values.length > 1)
+						Bearing1[index] = values[1];
+					if (values.length > 2)
+						Bearing2[index] = values[2];
+					if (values.length > 3)
+						Radius[index] = values[3];
+				} else {
+					index = 0;
+				}
+				if (index != 0)
+					setSectored(true);
+				if (key.equals("colour")) {
+					if (value.equals("red"))
+						LightColour[index] = "R";
+					else if (value.equals("green"))
+						LightColour[index] = "G";
+					else if (value.equals("white"))
+						LightColour[index] = "W";
+				} else if (key.equals("character")) {
+					LightChar[index] = value;
+				} else if (key.equals("group")) {
+					LightGroup[index] = value;
+				} else if (key.equals("period")) {
+					LightPeriod[index] = value;
+				} else if (key.equals("height")) {
+					Height[index] = value;
+				} else if (key.equals("range")) {
+					Range[index] = value;
+				}
+			}
+		}
+		setSectorIndex(0);
+//		dlg.cbM01Sector.setSelectedIndex(0);
+//		dlg.cM01Fired.setSelected(isFired());
+//		dlg.rbM01Fired1.setSelected(!isSectored());
+//		dlg.rbM01FiredN.setSelected(isSectored());
+//		dlg.cbM01Kennung.setSelectedItem(getLightChar());
+//		dlg.tfM01Height.setText(getHeight());
+//		dlg.tfM01Range.setText(getRange());
+//		dlg.tfM01Group.setText(getLightGroup());
+//		dlg.tfM01RepeatTime.setText(getLightPeriod());
+//		dlg.cbM01Colour.setSelectedItem(getLightColour());
+	}
+
+	public void parseFogRadar(Map<String, String> k) {
+		String str;
+		setFog(false);
+		setRadar(false);
+		setRacon(false);
+		if (k.containsKey("seamark:fog_signal")
+				|| k.containsKey("seamark:fog_signal:category")
+				|| k.containsKey("seamark:fog_signal:group")
+				|| k.containsKey("seamark:fog_signal:period")) {
+			setFog(true);
+			if (k.containsKey("seamark:fog_signal:category")) {
+				str = k.get("seamark:fog_signal:category");
+				if (str.equals("horn"))
+					setFogSound(FOG_HORN);
+				else if (str.equals("siren"))
+					setFogSound(FOG_SIREN);
+				else if (str.equals("diaphone"))
+					setFogSound(FOG_DIA);
+				else if (str.equals("bell"))
+					setFogSound(FOG_BELL);
+				else if (str.equals("whis"))
+					setFogSound(FOG_WHIS);
+				else if (str.equals("gong"))
+					setFogSound(FOG_GONG);
+				else if (str.equals("explosive"))
+					setFogSound(FOG_EXPLOS);
+				else
+					setFogSound(UNKNOWN_FOG);
+			}
+			if (k.containsKey("seamark:fog_signal:group"))
+				setFogGroup(k.get("seamark:fog_signal:group"));
+			if (k.containsKey("seamark:fog_signal:period"))
+				setFogPeriod(k.get("seamark:fog_signal:period"));
+		}
+//		dlg.cM01Fog.setSelected(hasFog());
+//		dlg.cbM01Fog.setSelectedIndex(getFogSound());
+//		dlg.tfM01FogGroup.setText(getFogGroup());
+//		dlg.tfM01FogPeriod.setText(getFogPeriod());
+
+		if (k.containsKey("seamark:radar_transponder")
+				|| k.containsKey("seamark:radar_transponder:category")
+				|| k.containsKey("seamark:radar_transponder:group")) {
+			setRacon(true);
+			if (k.containsKey("seamark:radar_transponder:category")) {
+				str = k.get("seamark:radar_transponder:category");
+				if (str.equals("racon"))
+					setRaType(RATYPE_RACON);
+				else if (str.equals("ramark"))
+					setRaType(RATYPE_RAMARK);
+				else if (str.equals("leading"))
+					setRaType(RATYPE_LEADING);
+				else
+					setRaType(UNKNOWN_RATYPE);
+			}
+			if (k.containsKey("seamark:radar_transponder:group"))
+				setRaconGroup(k.get("seamark:radar_transponder:group"));
+		} else if (k.containsKey("seamark:radar_reflector"))
+			setRadar(true);
+//		dlg.cM01Radar.setSelected(hasRadar());
+//		dlg.cM01Racon.setSelected(hasRacon());
+//		dlg.cbM01Racon.setSelectedIndex(getRaType());
+//		dlg.tfM01Racon.setText(getRaconGroup());
+	}
+
 	public abstract void paintSign();
 
-	public abstract void saveSign();
+	public void saveSign(String type) {
+		delSeaMarkKeys(node);
+
+		String str = dlg.panelMain.nameBox.getText();
+		if (!str.isEmpty())
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:name", str));
+		Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:type",
+				type));
+	}
+
+	protected void saveLightData() {
+/*		String colour;
+		if (dlg.cM01Fired.isSelected()) {
+			if (!(colour = LightColour[0]).isEmpty())
+				if (colour.equals("R")) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:colour", "red"));
+				} else if (colour.equals("G")) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:colour", "green"));
+				} else if (colour.equals("W")) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:colour", "white"));
+				}
+
+			if (!LightPeriod[0].isEmpty())
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:period", LightPeriod[0]));
+
+			if (!LightChar[0].isEmpty())
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:character", LightChar[0]));
+
+			if (!LightGroup[0].isEmpty())
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:group", LightGroup[0]));
+
+			if (!Height[0].isEmpty())
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:height", Height[0]));
+
+			if (!Range[0].isEmpty())
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:light:range", Range[0]));
+
+			for (int i = 1; i < 10; i++) {
+				if ((colour = LightColour[i]) != null)
+					if (colour.equals("R")) {
+						Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+								"seamark:light:" + i + ":colour", "red"));
+						if ((Bearing1[i] != null) && (Bearing2[i] != null)
+								&& (Radius[i] != null))
+							Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+									"seamark:light:" + i, "red:" + Bearing1[i] + ":"
+											+ Bearing2[i] + ":" + Radius[i]));
+					} else if (colour.equals("G")) {
+						Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+								"seamark:light:" + i + ":colour", "green"));
+						if ((Bearing1[i] != null) && (Bearing2[i] != null)
+								&& (Radius[i] != null))
+							Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+									"seamark:light:" + i, "green:" + Bearing1[i] + ":"
+											+ Bearing2[i] + ":" + Radius[i]));
+					} else if (colour.equals("W")) {
+						Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+								"seamark:light:" + i + ":colour", "white"));
+						if ((Bearing1[i] != null) && (Bearing2[i] != null)
+								&& (Radius[i] != null))
+							Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+									"seamark:light:" + i, "white:" + Bearing1[i] + ":"
+											+ Bearing2[i] + ":" + Radius[i]));
+					}
+
+				if (LightPeriod[i] != null)
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:" + i + ":period", LightPeriod[i]));
+
+				if (LightChar[i] != null)
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:" + i + ":character", LightChar[i]));
+
+				if (LightGroup[i] != null)
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:" + i + ":group", LightGroup[i]));
+
+				if (Height[i] != null)
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:" + i + ":height", Height[i]));
+
+				if (Range[i] != null)
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:" + i + ":range", Range[i]));
+
+				if (Bearing1[i] != null)
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:" + i + ":sector_start", Bearing1[i]));
+
+				if (Bearing2[i] != null)
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:light:" + i + ":sector_end", Bearing2[i]));
+			}
+		}
+*/	}
+
+	protected void saveTopMarkData(String shape, String colour) {
+/*		if (hasTopMark()) {
+			Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+					"seamark:topmark:shape", shape));
+			Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+					"seamark:topmark:colour", colour));
+		}
+*/	}
+
+	protected void saveRadarFogData() {
+/*		if (hasRadar()) {
+			Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+					"seamark:radar_reflector", "yes"));
+		}
+		if (hasRacon()) {
+			switch (RaType) {
+			case RATYPE_RACON:
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:radar_transponder:category", "racon"));
+				if (!getRaconGroup().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:radar_transponder:group", getRaconGroup()));
+				break;
+			case RATYPE_RAMARK:
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:radar_transponder:category", "ramark"));
+				break;
+			case RATYPE_LEADING:
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:radar_transponder:category", "leading"));
+				break;
+			default:
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:radar_transponder", "yes"));
+			}
+		}
+		if (hasFog()) {
+			if (getFogSound() == 0) {
+				Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+						"seamark:fog_signal", "yes"));
+			} else {
+				switch (getFogSound()) {
+				case FOG_HORN:
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:category", "horn"));
+					break;
+				case FOG_SIREN:
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:category", "siren"));
+					break;
+				case FOG_DIA:
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:category", "diaphone"));
+					break;
+				case FOG_BELL:
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:category", "bell"));
+					break;
+				case FOG_WHIS:
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:category", "whistle"));
+					break;
+				case FOG_GONG:
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:category", "gong"));
+					break;
+				case FOG_EXPLOS:
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:category", "explosive"));
+					break;
+				}
+				if (!getFogGroup().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:group", getFogGroup()));
+				if (!getFogPeriod().isEmpty())
+					Main.main.undoRedo.add(new ChangePropertyCommand(Node,
+							"seamark:fog_signal:period", getFogPeriod()));
+			}
+		}
+*/	}
 
 	protected void delSeaMarkKeys(Node node) {
@@ -194,5 +767,6 @@
 			if (str.contains("seamark") == true)
 				if (str.compareTo("seamark") != 0) {
-					Main.main.undoRedo.add(new ChangePropertyCommand(node, str, null));
+					Main.main.undoRedo.add(new ChangePropertyCommand(node, str,
+							null));
 				}
 		}
