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 27316)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java	(revision 27317)
@@ -105,7 +105,6 @@
 			}
 			topmarkButton.setVisible(dlg.panelMain.mark.testValid());
-			alTop.actionPerformed(null);
 			lightButton.setVisible(dlg.panelMain.mark.testValid());
-			alLit.actionPerformed(null);
+			dlg.panelMain.panelMore.syncPanel();
 		}
 	};
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 27316)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java	(revision 27317)
@@ -68,6 +68,6 @@
 				isolButton.setBorderPainted(false);
 			}
-			alTop.actionPerformed(null);
-			alLit.actionPerformed(null);
+			topmarkButton.setVisible(dlg.panelMain.mark.testValid());
+			lightButton.setVisible(dlg.panelMain.mark.testValid());
 			dlg.panelMain.panelMore.syncPanel();
 		}
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 27316)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java	(revision 27317)
@@ -74,6 +74,6 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (chanButton.isSelected()) {
-				mark.clearSign();
 				chanButton.setBorderPainted(true);
+				panelChan.syncPanel();
 				panelChan.setVisible(true);
 			} else {
@@ -82,6 +82,6 @@
 			}
 			if (hazButton.isSelected()) {
-				mark.clearSign();
 				hazButton.setBorderPainted(true);
+				panelHaz.syncPanel();
 				panelHaz.setVisible(true);
 			} else {
@@ -90,6 +90,6 @@
 			}
 			if (specButton.isSelected()) {
-				mark.clearSign();
 				specButton.setBorderPainted(true);
+				panelSpec.syncPanel();
 				panelSpec.setVisible(true);
 			} else {
@@ -98,6 +98,6 @@
 			}
 			if (lightsButton.isSelected()) {
-				mark.clearSign();
 				lightsButton.setBorderPainted(true);
+				panelLights.syncPanel();
 				panelLights.setVisible(true);
 			} else {
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 27316)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 27317)
@@ -636,9 +636,8 @@
 
 	public void nulLight(int i) {
-		if (sectors.size() >= i) {
-			if (sectors.size() == 0)
-				sectors.add(sector.clone());
-			else
-				sectors.add(i, sector.clone());
+		if (i == 0) {
+			clrLight();
+		} else {
+			sectors.add(i, sector.clone());
 		}
 	}
@@ -654,4 +653,5 @@
 		if (sectors.size() > i)
 			sectors.remove(i);
+		repaint();
 	}
 
@@ -660,4 +660,5 @@
 		addLight();
 		setLightRef("");
+		repaint();
 	}
 
@@ -1508,4 +1509,8 @@
 			if (keys.containsKey("seamark:light" + secStr + ":category")) {
 				str = keys.get("seamark:light" + secStr + ":category");
+				if (str.equals("vert"))
+					str = "vertical";
+				if (str.equals("horiz"))
+					str = "horizontal";
 				for (Lit lit : LitSTR.keySet())
 					if (LitSTR.get(lit).equals(str))
