Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChr.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChr.java	(revision 26123)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChr.java	(revision 26124)
@@ -20,6 +20,7 @@
 import oseam.Messages;
 import oseam.dialogs.OSeaMAction;
-import oseam.seamarks.SeaMark.Chr;
 import oseam.seamarks.SeaMark;
+import oseam.seamarks.Light;
+import oseam.seamarks.Light.Chr;
 
 public class PanelChr extends JPanel {
@@ -76,11 +77,11 @@
 				}
 			}
-			if (SeaMark.ChrMAP.containsKey(combo)) {
-				charBox.setText(SeaMark.ChrMAP.get(combo));
+			if (Light.ChrMAP.containsKey(combo)) {
+				charBox.setText(Light.ChrMAP.get(combo));
 			} else {
 				for (Chr chr : buttons.keySet()) {
 					JToggleButton button = buttons.get(chr);
 					if (button == source) {
-						charBox.setText(SeaMark.ChrMAP.get(EnumSet.of(chr)));
+						charBox.setText(Light.ChrMAP.get(EnumSet.of(chr)));
 						button.setSelected(true);
 						button.setBorderPainted(true);
@@ -97,6 +98,6 @@
 			String str = charBox.getText();
 			EnumSet<Chr> set = EnumSet.noneOf(Chr.class);
-			for (EnumSet<Chr> map : SeaMark.ChrMAP.keySet()) {
-				if (str.equals(SeaMark.ChrMAP.get(map))) {
+			for (EnumSet<Chr> map : Light.ChrMAP.keySet()) {
+				if (str.equals(Light.ChrMAP.get(map))) {
 					set = map;
 					break;
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 26123)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 26124)
@@ -9,7 +9,5 @@
 import javax.swing.JTextField;
 import javax.swing.JComboBox;
-import javax.swing.JTable;
 import javax.swing.SwingConstants;
-import javax.swing.JFrame;
 
 import java.awt.Color;
@@ -82,9 +80,9 @@
 					if (dlg.mark.light.getRowCount() == 1) {
 						dlg.mark.light.addSector(1);
-						dlg.mark.setSectored(true);
+						dlg.mark.light.setSectored(true);
 					}
 					panelSector.setVisible(true);
 				} else {
-					dlg.mark.setSectored(false);
+					dlg.mark.light.setSectored(false);
 					panelSector.setVisible(false);
 				}
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java	(revision 26123)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java	(revision 26124)
@@ -1,5 +1,3 @@
 package oseam.panels;
-
-import java.util.ArrayList;
 
 import javax.swing.ImageIcon;
@@ -9,8 +7,6 @@
 import javax.swing.JTable;
 import javax.swing.JButton;
-import javax.swing.table.AbstractTableModel;
 
 import oseam.seamarks.Light;
-import oseam.seamarks.SeaMark;
 
 public class PanelSectors extends JFrame {
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/Light.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/Light.java	(revision 26123)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/Light.java	(revision 26124)
@@ -2,8 +2,18 @@
 
 import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.swing.table.AbstractTableModel;
 
+import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.SeaMark.Col;
+
 public class Light extends AbstractTableModel {
+	
+	OSeaMAction dlg;
 
 	private String[] columns = { "Sector", "Start", "End", "Colour",
@@ -11,6 +21,7 @@
 	private ArrayList<Object[]> lights;
 	
-	public Light() {
+	public Light(OSeaMAction dia) {
 		super();
+		dlg = dia;
 		lights = new ArrayList<Object[]>();
 		lights.add(new Object[12]);
@@ -42,9 +53,8 @@
 
 	public void setValueAt(Object value, int row, int col) {
-//		lights.set(row, value)[col] = value;
-		fireTableCellUpdated(row, col);
+		((Object[])lights.get(row+1))[col+1] = value;
 	}
 	public void addSector(int idx) {
-		lights.add(idx, new Object[12]);
+		lights.add(idx, new Object[]{null, null, null, null, null, null, null, null, null, null, null, null});
 	}
 	
@@ -53,4 +63,222 @@
 	}
 	
+	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) {
+			setLightColour(0, Col.UNKNOWN);
+		} else {
+			setLightChar(0, Chr.UNKNOWN);
+			setLightColour(0, Col.UNKNOWN);
+			setLightGroup(0, "");
+			setHeight(0, "");
+			setRange(0, "");
+			setBearing1(0, "");
+			setBearing2(0, "");
+			setVisibility(0, Vis.UNKNOWN);
+		}
+	}
+
+	public String getBearing1(int idx) {
+		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 1);
+	}
+
+	public void setBearing1(int idx, String bearing) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(bearing, idx, 1);
+	}
+
+	public String getBearing2(int idx) {
+		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 2);
+	}
+
+	public void setBearing2(int idx, String bearing) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(bearing, idx, 2);
+	}
+
+	public Col getLightColour(int idx) {
+		return (Col)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 3);
+	}
+
+	public void setLightColour(int idx, Col col) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(col, idx, 3);
+	}
+
+	public enum Chr {
+		UNKNOWN, FIXED, FLASH, LONGFLASH, QUICK, VERYQUICK, ULTRAQUICK,
+		ISOPHASED, OCCULTING, MORSE, ALTERNATING, INTERRUPTEDQUICK, INTERRUPTEDVERYQUICK, INTERRUPTEDULTRAQUICK
+	}
+
+	public static final Map<EnumSet<Chr>, String> ChrMAP = new HashMap<EnumSet<Chr>, String>();
+	static {
+		ChrMAP.put(EnumSet.of(Chr.UNKNOWN), "");
+		ChrMAP.put(EnumSet.of(Chr.FIXED), "F");
+		ChrMAP.put(EnumSet.of(Chr.FLASH), "Fl");
+		ChrMAP.put(EnumSet.of(Chr.LONGFLASH), "LFl");
+		ChrMAP.put(EnumSet.of(Chr.QUICK), "Q");
+		ChrMAP.put(EnumSet.of(Chr.VERYQUICK), "VQ");
+		ChrMAP.put(EnumSet.of(Chr.ULTRAQUICK), "UQ");
+		ChrMAP.put(EnumSet.of(Chr.INTERRUPTEDQUICK), "IQ");
+		ChrMAP.put(EnumSet.of(Chr.INTERRUPTEDVERYQUICK), "IVQ");
+		ChrMAP.put(EnumSet.of(Chr.INTERRUPTEDULTRAQUICK), "IUQ");
+		ChrMAP.put(EnumSet.of(Chr.ISOPHASED), "Iso");
+		ChrMAP.put(EnumSet.of(Chr.OCCULTING), "Oc");
+		ChrMAP.put(EnumSet.of(Chr.MORSE), "Mo");
+		ChrMAP.put(EnumSet.of(Chr.ALTERNATING), "Al");
+		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.FIXED), "Al.F");
+		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.FLASH), "Al.Fl");
+		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.FIXED, Chr.FLASH), "F.Al.Fl");
+		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.LONGFLASH), "Al.LFl");
+		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.ISOPHASED), "Al.Iso");
+		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.OCCULTING), "Al.Oc");
+		ChrMAP.put(EnumSet.of(Chr.FIXED, Chr.FLASH), "FFl");
+		ChrMAP.put(EnumSet.of(Chr.FIXED, Chr.LONGFLASH), "FLFl");
+		ChrMAP.put(EnumSet.of(Chr.OCCULTING, Chr.FLASH), "OcFl");
+		ChrMAP.put(EnumSet.of(Chr.FLASH, Chr.LONGFLASH), "FlLFl");
+		ChrMAP.put(EnumSet.of(Chr.QUICK, Chr.LONGFLASH), "Q+LFl");
+		ChrMAP.put(EnumSet.of(Chr.VERYQUICK, Chr.LONGFLASH), "VQ+LFl");
+		ChrMAP.put(EnumSet.of(Chr.ULTRAQUICK, Chr.LONGFLASH), "UQ+LFl");
+	}
+	
+	public Chr getLightChar(int idx) {
+		return (Chr)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 4);
+	}
+
+	public void setLightChar(int idx, Chr chr) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(chr, idx, 4);
+	}
+
+	public String getLightGroup(int idx) {
+		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 5);
+	}
+
+	public void setLightGroup(int idx, String grp) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(grp, idx, 5);
+	}
+
+	protected void setLightGroup(int idx, Map<String, String> keys) {
+		String s = "";
+		if (keys.containsKey("seamark:light:group")) {
+			s = keys.get("seamark:light:group");
+			setLightGroup(0, s);
+		}
+	}
+
+	public String getLightPeriod(int idx) {
+		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 6);
+	}
+
+	public void setLightPeriod(int idx, String prd) {
+		String regex = "^[\\d\\s.]+$";
+
+		if (!prd.isEmpty()) {
+
+			Pattern pat = Pattern.compile(regex);
+			Matcher matcher = pat.matcher(prd);
+
+			if (matcher.find()) {
+				// setErrMsg(null);
+			} else {
+				// setErrMsg("Must be a number");
+				prd = "";
+				// dlg.tfM01RepeatTime.requestFocus();
+			}
+		}
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(prd, idx, 6);
+	}
+
+	public String getHeight(int idx) {
+		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 7);
+	}
+
+	public void setHeight(int idx, String hgt) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(hgt, idx, 7);
+	}
+
+	public String getRange(int idx) {
+		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 8);
+	}
+
+	public void setRange(int idx, String rng) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(rng, idx, 8);
+	}
+
+	public enum Vis { UNKNOWN, HIGH, LOW, FAINT, INTEN, UNINTEN, REST, OBS, PARTOBS }
+	public static final Map<EnumSet<Vis>, String> VisMAP = new HashMap<EnumSet<Vis>, String>();
+	static {
+		VisMAP.put(EnumSet.of(Vis.UNKNOWN), "");
+		VisMAP.put(EnumSet.of(Vis.HIGH), "high");
+		VisMAP.put(EnumSet.of(Vis.LOW), "low");
+		VisMAP.put(EnumSet.of(Vis.FAINT), "faint");
+		VisMAP.put(EnumSet.of(Vis.INTEN), "intensified");
+		VisMAP.put(EnumSet.of(Vis.UNINTEN), "unintensified");
+		VisMAP.put(EnumSet.of(Vis.REST), "restricted");
+		VisMAP.put(EnumSet.of(Vis.OBS), "obscured");
+		VisMAP.put(EnumSet.of(Vis.PARTOBS), "part_obscured");
+	}
+	
+	public Vis getVisibility(int idx) {
+		return (Vis)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 9);
+	}
+
+	public void setVisibility(int idx, Vis vis) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(vis, idx, 9);
+	}
+
+	public enum Lit { UNKNOWN, VERT, VERT2, VERT3, VERT4, HORIZ, HORIZ2, HORIZ3, HORIZ4,
+		UPPER, LOWER, REAR, FRONT, AERO, AIROBS, FOGDET, FLOOD, STRIP, SUBS, SPOT, MOIRE, EMERG, BEAR }
+	public static final Map<EnumSet<Lit>, String> LitMAP = new HashMap<EnumSet<Lit>, String>();
+	static {
+		LitMAP.put(EnumSet.of(Lit.UNKNOWN), "");
+	}
+		
+		public Lit getLightCategory(int idx) {
+		return (Lit)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 10);
+	}
+
+	public void setLightCategory(int idx, Lit cat) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(cat, idx, 10);
+	}
+
+	public enum Exh { UNKNOWN, H24, DAY, NIGHT, FOG }
+	public static final Map<EnumSet<Exh>, String> ExhMAP = new HashMap<EnumSet<Exh>, String>();
+	static {
+		ExhMAP.put(EnumSet.of(Exh.UNKNOWN), "");
+		ExhMAP.put(EnumSet.of(Exh.H24), "24h");
+		ExhMAP.put(EnumSet.of(Exh.DAY), "day");
+		ExhMAP.put(EnumSet.of(Exh.NIGHT), "night");
+		ExhMAP.put(EnumSet.of(Exh.FOG), "fog");
+	}
+	
+	public Exh getExhibition(int idx) {
+		return (Exh)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 11);
+	}
+
+	public void setExhibition(int idx, Exh exh) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(exh, idx, 11);
+	}
+
+	public String getOrientation(int idx) {
+		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 12);
+	}
+
+	public void setOrientation(int idx, String ori) {
+		dlg.panelMain.panelLit.panelSector.table.setValueAt(ori, idx, 12);
+	}
+
 }
 
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 26123)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 26124)
@@ -16,4 +16,5 @@
 import oseam.Messages;
 import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.Light;
 
 public class SeaMark {
@@ -234,6 +235,6 @@
 		case DAYMARK:
 			return dayColour;
-		case LIGHT:
-			return lightColour[sectorIndex];
+//		case LIGHT:
+//			return light.getLightColour();
 		}
 		return Col.UNKNOWN;
@@ -254,7 +255,7 @@
 			dayColour = col;
 			break;
-		case LIGHT:
-			lightColour[sectorIndex] = col;
-			break;
+//		case LIGHT:
+//			light.setLightColour(col);
+//			break;
 		}
 	}
@@ -411,248 +412,6 @@
 	}
 
-	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] = Col.UNKNOWN;
-		} else {
-			setsectorIndex(0);
-			setLightChar("");
-			setLightColour(Col.UNKNOWN);
-			setLightGroup("");
-			setHeight("");
-			setRange("");
-			setBearing1("");
-			setBearing2("");
-			setVisibility(Vis.UNKNOWN);
-		}
-	}
-
-	private int sectorIndex = 0;
-
-	public int getsectorIndex() {
-		return sectorIndex;
-	}
-
-	public void setsectorIndex(int sector) {
-		sectorIndex = sector;
-	}
+	public Light light = new Light(dlg);
 	
-	public enum Chr {
-		UNKNOWN, FIXED, FLASH, LONGFLASH, QUICK, VERYQUICK, ULTRAQUICK,
-		ISOPHASED, OCCULTING, MORSE, ALTERNATING, INTERRUPTEDQUICK, INTERRUPTEDVERYQUICK, INTERRUPTEDULTRAQUICK
-	}
-
-	public static final Map<EnumSet<Chr>, String> ChrMAP = new HashMap<EnumSet<Chr>, String>();
-	static {
-		ChrMAP.put(EnumSet.of(Chr.UNKNOWN), "");
-		ChrMAP.put(EnumSet.of(Chr.FIXED), "F");
-		ChrMAP.put(EnumSet.of(Chr.FLASH), "Fl");
-		ChrMAP.put(EnumSet.of(Chr.LONGFLASH), "LFl");
-		ChrMAP.put(EnumSet.of(Chr.QUICK), "Q");
-		ChrMAP.put(EnumSet.of(Chr.VERYQUICK), "VQ");
-		ChrMAP.put(EnumSet.of(Chr.ULTRAQUICK), "UQ");
-		ChrMAP.put(EnumSet.of(Chr.INTERRUPTEDQUICK), "IQ");
-		ChrMAP.put(EnumSet.of(Chr.INTERRUPTEDVERYQUICK), "IVQ");
-		ChrMAP.put(EnumSet.of(Chr.INTERRUPTEDULTRAQUICK), "IUQ");
-		ChrMAP.put(EnumSet.of(Chr.ISOPHASED), "Iso");
-		ChrMAP.put(EnumSet.of(Chr.OCCULTING), "Oc");
-		ChrMAP.put(EnumSet.of(Chr.MORSE), "Mo");
-		ChrMAP.put(EnumSet.of(Chr.ALTERNATING), "Al");
-		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.FIXED), "Al.F");
-		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.FLASH), "Al.Fl");
-		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.FIXED, Chr.FLASH), "F.Al.Fl");
-		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.LONGFLASH), "Al.LFl");
-		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.ISOPHASED), "Al.Iso");
-		ChrMAP.put(EnumSet.of(Chr.ALTERNATING, Chr.OCCULTING), "Al.Oc");
-		ChrMAP.put(EnumSet.of(Chr.FIXED, Chr.FLASH), "FFl");
-		ChrMAP.put(EnumSet.of(Chr.FIXED, Chr.LONGFLASH), "FLFl");
-		ChrMAP.put(EnumSet.of(Chr.OCCULTING, Chr.FLASH), "OcFl");
-		ChrMAP.put(EnumSet.of(Chr.FLASH, Chr.LONGFLASH), "FlLFl");
-		ChrMAP.put(EnumSet.of(Chr.QUICK, Chr.LONGFLASH), "Q+LFl");
-		ChrMAP.put(EnumSet.of(Chr.VERYQUICK, Chr.LONGFLASH), "VQ+LFl");
-		ChrMAP.put(EnumSet.of(Chr.ULTRAQUICK, Chr.LONGFLASH), "UQ+LFl");
-	}
-	
-	public Light light = new Light();
-	
-	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;
-	}
-
-	private Col[] lightColour = new Col[10];
-
-	public Col getLightColour() {
-		if (lightColour[sectorIndex] == null)
-			return (lightColour[0]);
-		return lightColour[sectorIndex];
-	}
-
-	public void setLightColour(Col col) {
-		lightColour[sectorIndex] = col;
-	}
-
-	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> keys) {
-		String s = "";
-		if (keys.containsKey("seamark:light:group")) {
-			s = keys.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;
-	}
-
-	public enum Vis { UNKNOWN, HIGH, LOW, FAINT, INTEN, UNINTEN, REST, OBS, PARTOBS }
-	public static final Map<EnumSet<Vis>, String> VisMAP = new HashMap<EnumSet<Vis>, String>();
-	static {
-		VisMAP.put(EnumSet.of(Vis.UNKNOWN), "");
-		VisMAP.put(EnumSet.of(Vis.HIGH), "high");
-		VisMAP.put(EnumSet.of(Vis.LOW), "low");
-		VisMAP.put(EnumSet.of(Vis.FAINT), "faint");
-		VisMAP.put(EnumSet.of(Vis.INTEN), "intensified");
-		VisMAP.put(EnumSet.of(Vis.UNINTEN), "unintensified");
-		VisMAP.put(EnumSet.of(Vis.REST), "restricted");
-		VisMAP.put(EnumSet.of(Vis.OBS), "obscured");
-		VisMAP.put(EnumSet.of(Vis.PARTOBS), "part_obscured");
-	}
-	
-	private Vis[] Visibility = new Vis[10];
-
-	public Vis getVisibility() {
-		if (Visibility[sectorIndex] == null)
-			return (Visibility[0]);
-		return Visibility[sectorIndex];
-	}
-
-	public void setVisibility(Vis visibility) {
-		if (sectorIndex == 0)
-			Visibility = new Vis[10];
-		Visibility[sectorIndex] = visibility;
-	}
-
-	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;
-	}
-
 	private boolean paintlock = false;
 
@@ -918,10 +677,10 @@
 			str = keys.get("seamark:topmark:shape");
 		}
-
+/*
 		for (Map.Entry<String, String> entry : keys.entrySet()) {
 			String key = entry.getKey();
 			String value = entry.getValue().trim();
 			if (key.contains("seamark:light:")) {
-				setFired(true);
+				light.setFired(true);
 				int index = 0;
 				key = key.substring(14);
@@ -967,5 +726,5 @@
 			}
 		}
-
+*/
 		if (keys.containsKey("seamark:fog_signal") || keys.containsKey("seamark:fog_signal:category")
 		    || keys.containsKey("seamark:fog_signal:group") || keys.containsKey("seamark:fog_signal:period")) {
@@ -1182,5 +941,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:daymark:colour", str));
 		}
-
+/*
 		Col colour;
 		if (isFired()) {
@@ -1236,5 +995,5 @@
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light:" + i + ":sector_end", Bearing2[i]));
 			}
-		}
+		}*/
 		if (hasRadar()) {
 			Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:radar_reflector", "yes"));
