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 26999)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 27000)
@@ -85,5 +85,5 @@
 			if (sectorButton.isSelected()) {
 				if (panelSector == null) {
-					panelSector = new PanelSectors(dlg.mark.light);
+					panelSector = new PanelSectors(dlg);
 					panelSector.setAlwaysOnTop(true);
 					panelSector.setLocation(450, 0);
@@ -91,9 +91,9 @@
 				if (panelSector.getSectorCount() == 0) {
 					panelSector.addSector(1);
-					panelSector.light.setSectored(true);
+					dlg.mark.setSectored(true);
 				}
 				panelSector.setVisible(true);
 			} else {
-				dlg.mark.light.setSectored(false);
+				dlg.mark.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 26999)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java	(revision 27000)
@@ -2,27 +2,32 @@
 
 import java.awt.event.*;
+import java.util.ArrayList;
+
 import javax.swing.*;
 
+import oseam.dialogs.OSeaMAction;
 import oseam.seamarks.*;
 
 public class PanelSectors extends JFrame {
 
+	private OSeaMAction dlg;
 	public JPanel panel;
 	public JButton minusButton;
 	public JButton plusButton;
 	public JTable table;
-	public Light light;
 	private JScrollPane tablePane;
 	private ActionListener alMinusButton;
 	private ActionListener alPlusButton;
 
-	public PanelSectors(Light lit) {
+	public PanelSectors(OSeaMAction dia) {
 		super("Sector Table");
-		light = lit;
+		dlg = dia;
+		lights = new ArrayList<Object[]>();
+		lights.add(new Object[]{null, null, null, null, null, null, null, null, null, null, null, null});
 		panel = new JPanel();
 		this.setSize(700, 100);
 		panel.setBounds(0, 0, 700, 512);
 		this.getContentPane().add(panel);
-		table = new JTable(light);
+		table = new JTable();
 		tablePane = new JScrollPane(table);
 		tablePane.setBounds(40, 0, 660, 34);
@@ -52,28 +57,60 @@
 
 	public int getSectorCount() {
-		return light.getRowCount();
+		return getRowCount();
 	}
 
 	public void addSector(int idx) {
-		light.addSector(idx);
-		tablePane.setSize(660, ((light.getRowCount() * 16) + 18));
-		if (light.getRowCount() > 3) {
-			this.setSize(700, ((light.getRowCount() * 16) + 40));
+		lights.add(idx, new Object[]{null, null, null, null, null, null, null, null, null, null, null, null});
+		tablePane.setSize(660, ((getRowCount() * 16) + 18));
+		if (getRowCount() > 3) {
+			this.setSize(700, ((getRowCount() * 16) + 40));
 		} else {
 			this.setSize(700, 100);
 		}
-		light.fireTableRowsInserted(idx, idx);
+//		light.fireTableRowsInserted(idx, idx);
 	}
 
 	public void deleteSector(int idx) {
-		light.deleteSector(idx);
-		tablePane.setSize(660, ((light.getRowCount() * 16) + 18));
-		if (light.getRowCount() > 3) {
-			this.setSize(700, ((light.getRowCount() * 16) + 40));
+		lights.remove(idx);
+		tablePane.setSize(660, ((getRowCount() * 16) + 18));
+		if (getRowCount() > 3) {
+			this.setSize(700, ((getRowCount() * 16) + 40));
 		} else {
 			this.setSize(700, 100);
 		}
-		light.fireTableRowsDeleted(idx, idx);
+//		light.fireTableRowsDeleted(idx, idx);
 	}
 
+	private String[] columns = { "Sector", "Start", "End", "Colour",
+			"Character", "Group", "Period", "Height", "Range", "Visibility" };
+	private ArrayList<Object[]> lights;
+
+	private String getColumnName(int col) {
+		return columns[col].toString();
+	}
+
+	private int getColumnCount() {
+		return columns.length;
+	}
+
+	private int getRowCount() {
+		return lights.size()-1;
+	}
+
+	private Object getValueAt(int row, int col) {
+		if (col == 0) {
+			return row+1;
+		} else {
+			return ((Object[])lights.get(row+1))[col+1];
+		}
+	}
+
+	private boolean isCellEditable(int row, int col) {
+		return (col > 0);
+	}
+
+	private void setValueAt(Object value, int row, int col) {
+		((Object[])lights.get(row+1))[col+1] = value;
+	}
+	
 }
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 26999)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/Light.java	(revision 27000)
@@ -61,24 +61,4 @@
 	}
 	
-	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;
-	}
-
 	public String getBearing1(int idx) {
 		return (String)dlg.panelMain.panelLit.panelSector.table.getValueAt(idx, 1);
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 26999)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 27000)
@@ -18,6 +18,4 @@
 		dlg = dia;
 	}
-
-	public Light light = new Light(dlg);
 
 	public String validDecimal(String str) {
@@ -428,4 +426,24 @@
 	}
 
+	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;
+	}
+
 	public enum Chr {
 		UNKNOWN, FIXED, FLASH, LONGFLASH, QUICK, VERYQUICK, ULTRAQUICK, ISOPHASED, OCCULTING, MORSE, ALTERNATING, INTERRUPTEDQUICK, INTERRUPTEDVERYQUICK, INTERRUPTEDULTRAQUICK
