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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 27200)
@@ -21,5 +21,4 @@
 	public PanelMain panelMain = null;
 
-	public SeaMark mark = null;
 	public Node node = null;
 	private Collection<? extends OsmPrimitive> Selection = null;
@@ -36,12 +35,9 @@
 						if (nextNode.compareTo(node) != 0) {
 							node = nextNode;
-							mark = new SeaMark(dlg);
-							mark.setBounds(new Rectangle(235, 0, 165, 160));
-							panelMain.add(mark);
-							mark.parseMark(node);
+							panelMain.mark.parseMark(node);
 						}
 					} else {
 						node = null;
-						mark = null;
+						panelMain.mark.clearSign();
 						panelMain.syncPanel();
 						manager.showVisualMessage(Messages.getString("OneNode"));
@@ -51,5 +47,5 @@
 			if (nextNode == null) {
 				node = null;
-				mark = null;
+				panelMain.mark.clearSign();
 				panelMain.syncPanel();
 				manager.showVisualMessage(Messages.getString("SelectNode"));
@@ -78,5 +74,4 @@
 			panelMain.setSize(new Dimension(400, 360));
 			node = null;
-			mark = null;
 			panelMain.syncPanel();
 		}
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java	(revision 27200)
@@ -32,12 +32,12 @@
 			topmarkButton.setVisible(false);
 			lightButton.setVisible(false);
-			Shp shp = dlg.mark.getShape();
+			Shp shp = dlg.panelMain.mark.getShape();
 			if (portButton.isSelected()) {
-				dlg.mark.setCategory(Cat.LAM_PORT);
+				dlg.panelMain.mark.setCategory(Cat.LAM_PORT);
 				if (panelPort.shapes.containsKey(shp)) {
 					panelPort.shapes.get(shp).setSelected(true);
 				} else {
 					panelPort.shapeButtons.clearSelection();
-					dlg.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
 				}
 				panelPort.alShape.actionPerformed(null);
@@ -48,10 +48,10 @@
 			}
 			if (prefPortButton.isSelected()) {
-				dlg.mark.setCategory(Cat.LAM_PPORT);
+				dlg.panelMain.mark.setCategory(Cat.LAM_PPORT);
 				if (panelPort.shapes.containsKey(shp)) {
 					panelPort.shapes.get(shp).setSelected(true);
 				} else {
 					panelPort.shapeButtons.clearSelection();
-					dlg.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
 				}
 				panelPort.alShape.actionPerformed(null);
@@ -62,10 +62,10 @@
 			}
 			if (stbdButton.isSelected()) {
-				dlg.mark.setCategory(Cat.LAM_STBD);
+				dlg.panelMain.mark.setCategory(Cat.LAM_STBD);
 				if (panelStbd.shapes.containsKey(shp)) {
 					panelStbd.shapes.get(shp).setSelected(true);
 				} else {
 					panelStbd.shapeButtons.clearSelection();
-					dlg.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
 				}
 				panelStbd.alShape.actionPerformed(null);
@@ -76,10 +76,10 @@
 			}
 			if (prefStbdButton.isSelected()) {
-				dlg.mark.setCategory(Cat.LAM_PSTBD);
+				dlg.panelMain.mark.setCategory(Cat.LAM_PSTBD);
 				if (panelStbd.shapes.containsKey(shp)) {
 					panelStbd.shapes.get(shp).setSelected(true);
 				} else {
 					panelStbd.shapeButtons.clearSelection();
-					dlg.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
 				}
 				panelStbd.alShape.actionPerformed(null);
@@ -90,5 +90,5 @@
 			}
 			if (safeWaterButton.isSelected()) {
-				dlg.mark.setCategory(Cat.NONE);
+				dlg.panelMain.mark.setCategory(Cat.NONE);
 				panelSaw.setVisible(true);
 				if (panelSaw.shapes.containsKey(shp)) {
@@ -96,5 +96,5 @@
 				} else {
 					panelSaw.shapeButtons.clearSelection();
-					dlg.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
 				}
 				panelSaw.alShape.actionPerformed(null);
@@ -104,7 +104,7 @@
 				safeWaterButton.setBorderPainted(false);
 			}
-			topmarkButton.setVisible(dlg.mark.testValid());
+			topmarkButton.setVisible(dlg.panelMain.mark.testValid());
 			alTop.actionPerformed(null);
-			lightButton.setVisible(dlg.mark.testValid());
+			lightButton.setVisible(dlg.panelMain.mark.testValid());
 			alLit.actionPerformed(null);
 		}
@@ -114,26 +114,26 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (topmarkButton.isSelected()) {
-				if (SeaMark.GrpMAP.get(dlg.mark.getObject()) == Grp.SAW) {
-					dlg.mark.setTopmark(Top.SPHERE);
-					dlg.mark.setTopPattern(Pat.NONE);
-					dlg.mark.setTopColour(Col.RED);
-				} else {
-					switch (dlg.mark.getCategory()) {
+				if (SeaMark.GrpMAP.get(dlg.panelMain.mark.getObject()) == Grp.SAW) {
+					dlg.panelMain.mark.setTopmark(Top.SPHERE);
+					dlg.panelMain.mark.setTopPattern(Pat.NONE);
+					dlg.panelMain.mark.setTopColour(Col.RED);
+				} else {
+					switch (dlg.panelMain.mark.getCategory()) {
 					case LAM_PORT:
 					case LAM_PPORT:
-						dlg.mark.setTopmark(Top.CAN);
-						switch (dlg.mark.getRegion()) {
+						dlg.panelMain.mark.setTopmark(Top.CAN);
+						switch (dlg.panelMain.mark.getRegion()) {
 						case A:
-							dlg.mark.setTopPattern(Pat.NONE);
-							dlg.mark.setTopColour(Col.RED);
+							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopColour(Col.RED);
 							break;
 						case B:
-							dlg.mark.setTopPattern(Pat.NONE);
-							dlg.mark.setTopColour(Col.GREEN);
+							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopColour(Col.GREEN);
 							break;
 						case C:
-							dlg.mark.setTopPattern(Pat.HORIZ);
-							dlg.mark.setTopColour(Col.RED);
-							dlg.mark.addTopColour(Col.WHITE);
+							dlg.panelMain.mark.setTopPattern(Pat.HORIZ);
+							dlg.panelMain.mark.setTopColour(Col.RED);
+							dlg.panelMain.mark.addTopColour(Col.WHITE);
 							break;
 						}
@@ -141,18 +141,18 @@
 					case LAM_STBD:
 					case LAM_PSTBD:
-						dlg.mark.setTopmark(Top.CONE);
-						switch (dlg.mark.getRegion()) {
+						dlg.panelMain.mark.setTopmark(Top.CONE);
+						switch (dlg.panelMain.mark.getRegion()) {
 						case A:
-							dlg.mark.setTopPattern(Pat.NONE);
-							dlg.mark.setTopColour(Col.GREEN);
+							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopColour(Col.GREEN);
 							break;
 						case B:
-							dlg.mark.setTopPattern(Pat.NONE);
-							dlg.mark.setTopColour(Col.RED);
+							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopColour(Col.RED);
 							break;
 						case C:
-							dlg.mark.setTopPattern(Pat.HORIZ);
-							dlg.mark.setTopColour(Col.GREEN);
-							dlg.mark.addTopColour(Col.WHITE);
+							dlg.panelMain.mark.setTopPattern(Pat.HORIZ);
+							dlg.panelMain.mark.setTopColour(Col.GREEN);
+							dlg.panelMain.mark.addTopColour(Col.WHITE);
 							break;
 						}
@@ -162,7 +162,7 @@
 				topmarkButton.setBorderPainted(true);
 			} else {
-				dlg.mark.setTopmark(Top.NONE);
-				dlg.mark.setTopPattern(Pat.NONE);
-				dlg.mark.setTopColour(Col.UNKNOWN);
+				dlg.panelMain.mark.setTopmark(Top.NONE);
+				dlg.panelMain.mark.setTopPattern(Pat.NONE);
+				dlg.panelMain.mark.setTopColour(Col.UNKNOWN);
 				topmarkButton.setBorderPainted(false);
 			}
@@ -174,19 +174,19 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (lightButton.isSelected()) {
-				if (SeaMark.GrpMAP.get(dlg.mark.getObject()) == Grp.SAW) {
-					dlg.mark.setLightAtt(Att.CHR, 0, "LFl");
-					dlg.mark.setLightAtt(Att.COL, 0, Col.WHITE);
-				} else {
-					dlg.mark.setLightAtt(Att.CHR, 0, "Fl");
-					switch (dlg.mark.getCategory()) {
+				if (SeaMark.GrpMAP.get(dlg.panelMain.mark.getObject()) == Grp.SAW) {
+					dlg.panelMain.mark.setLightAtt(Att.CHR, 0, "LFl");
+					dlg.panelMain.mark.setLightAtt(Att.COL, 0, Col.WHITE);
+				} else {
+					dlg.panelMain.mark.setLightAtt(Att.CHR, 0, "Fl");
+					switch (dlg.panelMain.mark.getCategory()) {
 					case LAM_PORT:
 					case LAM_PPORT:
-						switch (dlg.mark.getRegion()) {
+						switch (dlg.panelMain.mark.getRegion()) {
 						case A:
 						case C:
-							dlg.mark.setLightAtt(Att.COL, 0, Col.RED);
+							dlg.panelMain.mark.setLightAtt(Att.COL, 0, Col.RED);
 							break;
 						case B:
-							dlg.mark.setLightAtt(Att.COL, 0, Col.GREEN);
+							dlg.panelMain.mark.setLightAtt(Att.COL, 0, Col.GREEN);
 							break;
 						}
@@ -194,11 +194,11 @@
 					case LAM_STBD:
 					case LAM_PSTBD:
-						switch (dlg.mark.getRegion()) {
+						switch (dlg.panelMain.mark.getRegion()) {
 						case A:
 						case C:
-							dlg.mark.setLightAtt(Att.COL, 0, Col.GREEN);
+							dlg.panelMain.mark.setLightAtt(Att.COL, 0, Col.GREEN);
 							break;
 						case B:
-							dlg.mark.setLightAtt(Att.COL, 0, Col.RED);
+							dlg.panelMain.mark.setLightAtt(Att.COL, 0, Col.RED);
 							break;
 						}
@@ -208,5 +208,5 @@
 				lightButton.setBorderPainted(true);
 			} else {
-				dlg.mark.clrLight();
+				dlg.panelMain.mark.clrLight();
 				lightButton.setBorderPainted(false);
 			}
@@ -254,5 +254,5 @@
 		panelStbd.setVisible(false);
 		panelSaw.setVisible(false);
-		if (dlg.mark.getCategory() == Cat.LAM_PORT) {
+		if (dlg.panelMain.mark.getCategory() == Cat.LAM_PORT) {
 			panelPort.setVisible(true);
 			portButton.setBorderPainted(true);
@@ -260,5 +260,5 @@
 			portButton.setBorderPainted(false);
 		}
-		if (dlg.mark.getCategory() == Cat.LAM_PPORT) {
+		if (dlg.panelMain.mark.getCategory() == Cat.LAM_PPORT) {
 			panelPort.setVisible(true);
 			prefPortButton.setBorderPainted(true);
@@ -266,5 +266,5 @@
 			prefPortButton.setBorderPainted(false);
 		}
-		if (dlg.mark.getCategory() == Cat.LAM_STBD) {
+		if (dlg.panelMain.mark.getCategory() == Cat.LAM_STBD) {
 			panelStbd.setVisible(true);
 			stbdButton.setBorderPainted(true);
@@ -272,5 +272,5 @@
 			stbdButton.setBorderPainted(false);
 		}
-		if (dlg.mark.getCategory() == Cat.LAM_PSTBD) {
+		if (dlg.panelMain.mark.getCategory() == Cat.LAM_PSTBD) {
 			panelStbd.setVisible(true);
 			prefStbdButton.setBorderPainted(true);
@@ -278,5 +278,5 @@
 			prefStbdButton.setBorderPainted(false);
 		}
-		if (SeaMark.GrpMAP.get(dlg.mark.getObject()) == Grp.SAW) {
+		if (SeaMark.GrpMAP.get(dlg.panelMain.mark.getObject()) == Grp.SAW) {
 			panelSaw.setVisible(true);
 			safeWaterButton.setBorderPainted(true);
@@ -284,15 +284,15 @@
 			safeWaterButton.setBorderPainted(false);
 		}
-		topmarkButton.setBorderPainted(dlg.mark.getTopmark() != Top.NONE);
-		topmarkButton.setSelected(dlg.mark.getTopmark() != Top.NONE);
-		topmarkButton.setVisible(dlg.mark.testValid());
-		Boolean lit = (dlg.mark.getLightAtt(Att.COL, 0) != Col.UNKNOWN) && !((String)dlg.mark.getLightAtt(Att.CHR, 0)).isEmpty();
+		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setVisible(dlg.panelMain.mark.testValid());
+		Boolean lit = (dlg.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKNOWN) && !((String)dlg.panelMain.mark.getLightAtt(Att.CHR, 0)).isEmpty();
 		lightButton.setBorderPainted(lit);
 		lightButton.setSelected(lit);
-		lightButton.setVisible(dlg.mark.testValid());
+		lightButton.setVisible(dlg.panelMain.mark.testValid());
 		panelPort.syncPanel();
 		panelStbd.syncPanel();
 		panelSaw.syncPanel();
-		dlg.mark.testValid();
+		dlg.panelMain.mark.testValid();
 	}
 
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChr.java	(revision 27200)
@@ -64,5 +64,5 @@
 				}
 			}
-			dlg.mark.setLightAtt(Att.CHR, 0, charBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.CHR, 0, charBox.getText());
 		}
 	};
@@ -70,5 +70,5 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			String str = charBox.getText();
-			dlg.mark.setLightAtt(Att.CHR, 0, str);
+			dlg.panelMain.mark.setLightAtt(Att.CHR, 0, str);
 			EnumSet<Chr> set = EnumSet.noneOf(Chr.class);
 			for (EnumSet<Chr> map : SeaMark.ChrMAP.keySet()) {
@@ -120,9 +120,9 @@
 
 	public void syncPanel() {
-		String str = (String)dlg.mark.getLightAtt(Att.CHR, 0);
+		String str = (String)dlg.panelMain.mark.getLightAtt(Att.CHR, 0);
 		charBox.setText(str);
 		EnumSet<Chr> set = EnumSet.noneOf(Chr.class);
 		for (EnumSet<Chr> map : SeaMark.ChrMAP.keySet()) {
-			if (str.equals(SeaMark.ChrMAP.get(map))) {
+			if (dlg.node != null && str.equals(SeaMark.ChrMAP.get(map))) {
 				set = map;
 				break;
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java	(revision 27200)
@@ -41,18 +41,18 @@
 				if (button.isSelected()) {
 						if (ent == Ent.LIGHT) {
-							dlg.mark.setLightAtt(Att.COL, 0, col);
+							dlg.panelMain.mark.setLightAtt(Att.COL, 0, col);
 							button.setBorderPainted(true);
 						} else {
 							if (button == delButton) {
-								dlg.mark.subColour(ent, stackIdx);
+								dlg.panelMain.mark.subColour(ent, stackIdx);
 							} else if (button == addButton) {
 								if (stackCol.size() != 0)
 									stackIdx++;
 								if (stackCol.size() == 0)
-									dlg.mark.setColour(ent, col);
+									dlg.panelMain.mark.setColour(ent, col);
 								else
-									dlg.mark.addColour(ent, stackIdx, col);
+									dlg.panelMain.mark.addColour(ent, stackIdx, col);
 							} else {
-								dlg.mark.setColour(ent, stackIdx, col);
+								dlg.panelMain.mark.setColour(ent, stackIdx, col);
 							}
 							syncPanel();
@@ -122,5 +122,5 @@
 			for (Col col : colours.keySet()) {
 				JRadioButton button = colours.get(col);
-				if (dlg.mark.getLightAtt(Att.COL, 0) == col) {
+				if (dlg.panelMain.mark.getLightAtt(Att.COL, 0) == col) {
 					button.setBorderPainted(true);
 				} else
@@ -129,5 +129,5 @@
 		} else {
 			int idx;
-			for (idx = 0; dlg.mark.getColour(ent, idx) != Col.UNKNOWN; idx++) {
+			for (idx = 0; dlg.panelMain.mark.getColour(ent, idx) != Col.UNKNOWN; idx++) {
 				if (stackCol.size() <= idx) {
 					stackCol.add(idx, new JRadioButton(new ImageIcon(getClass().getResource("/images/ColourButton.png"))));
@@ -155,5 +155,5 @@
 					JRadioButton btnI = stackCol.get(idx);
 					btnI.setBounds(2, (2 + (idx * height)), 30, height);
-					btnI.setBackground(SeaMark.ColMAP.get(dlg.mark.getColour(ent, idx)));
+					btnI.setBackground(SeaMark.ColMAP.get(dlg.panelMain.mark.getColour(ent, idx)));
 					if (stackIdx == idx) {
 						btnI.setBorderPainted(true);
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelFog.java	(revision 27200)
@@ -30,5 +30,5 @@
 				JRadioButton button = fogs.get(fog);
 				if (button.isSelected()) {
-					dlg.mark.setFogSound(fog);
+					dlg.panelMain.mark.setFogSound(fog);
 					button.setBorderPainted(true);
 				} else
@@ -41,5 +41,5 @@
 	private ActionListener alGroup = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setFogGroup(groupBox.getText());
+			dlg.panelMain.mark.setFogGroup(groupBox.getText());
 		}
 	};
@@ -48,5 +48,5 @@
 	private ActionListener alPeriod = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setFogPeriod(periodBox.getText());
+			dlg.panelMain.mark.setFogPeriod(periodBox.getText());
 		}
 	};
@@ -55,5 +55,5 @@
 	private ActionListener alSeq = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setFogSequence(seqBox.getText());
+			dlg.panelMain.mark.setFogSequence(seqBox.getText());
 		}
 	};
@@ -62,5 +62,5 @@
 	private ActionListener alRange = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setFogRange(rangeBox.getText());
+			dlg.panelMain.mark.setFogRange(rangeBox.getText());
 		}
 	};
@@ -120,10 +120,10 @@
 		for (Fog fog : fogs.keySet()) {
 			JRadioButton button = fogs.get(fog);
-			button.setBorderPainted(dlg.mark.getFogSound() == fog);
+			button.setBorderPainted(dlg.panelMain.mark.getFogSound() == fog);
 		}
-		groupBox.setText(dlg.mark.getFogGroup());
-		seqBox.setText(dlg.mark.getFogSequence());
-		periodBox.setText(dlg.mark.getFogPeriod());
-		rangeBox.setText(dlg.mark.getFogRange());
+		groupBox.setText(dlg.panelMain.mark.getFogGroup());
+		seqBox.setText(dlg.panelMain.mark.getFogSequence());
+		periodBox.setText(dlg.panelMain.mark.getFogPeriod());
+		rangeBox.setText(dlg.panelMain.mark.getFogRange());
 	}
 
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java	(revision 27200)
@@ -24,9 +24,9 @@
 	private ActionListener alCat = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setObjPattern(Pat.HORIZ);
+			dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
 			if (northButton.isSelected()) {
-				dlg.mark.setCategory(Cat.CAM_NORTH);
-				dlg.mark.setObjColour(Col.BLACK);
-				dlg.mark.addObjColour(Col.YELLOW);
+				dlg.panelMain.mark.setCategory(Cat.CAM_NORTH);
+				dlg.panelMain.mark.setObjColour(Col.BLACK);
+				dlg.panelMain.mark.addObjColour(Col.YELLOW);
 				northButton.setBorderPainted(true);
 			} else {
@@ -34,7 +34,7 @@
 			}
 			if (southButton.isSelected()) {
-				dlg.mark.setCategory(Cat.CAM_SOUTH);
-				dlg.mark.setObjColour(Col.YELLOW);
-				dlg.mark.addObjColour(Col.BLACK);
+				dlg.panelMain.mark.setCategory(Cat.CAM_SOUTH);
+				dlg.panelMain.mark.setObjColour(Col.YELLOW);
+				dlg.panelMain.mark.addObjColour(Col.BLACK);
 				southButton.setBorderPainted(true);
 			} else {
@@ -42,8 +42,8 @@
 			}
 			if (eastButton.isSelected()) {
-				dlg.mark.setCategory(Cat.CAM_EAST);
-				dlg.mark.setObjColour(Col.BLACK);
-				dlg.mark.addObjColour(Col.YELLOW);
-				dlg.mark.addObjColour(Col.BLACK);
+				dlg.panelMain.mark.setCategory(Cat.CAM_EAST);
+				dlg.panelMain.mark.setObjColour(Col.BLACK);
+				dlg.panelMain.mark.addObjColour(Col.YELLOW);
+				dlg.panelMain.mark.addObjColour(Col.BLACK);
 				eastButton.setBorderPainted(true);
 			} else {
@@ -51,8 +51,8 @@
 			}
 			if (westButton.isSelected()) {
-				dlg.mark.setCategory(Cat.CAM_WEST);
-				dlg.mark.setObjColour(Col.YELLOW);
-				dlg.mark.addObjColour(Col.BLACK);
-				dlg.mark.addObjColour(Col.YELLOW);
+				dlg.panelMain.mark.setCategory(Cat.CAM_WEST);
+				dlg.panelMain.mark.setObjColour(Col.YELLOW);
+				dlg.panelMain.mark.addObjColour(Col.BLACK);
+				dlg.panelMain.mark.addObjColour(Col.YELLOW);
 				westButton.setBorderPainted(true);
 			} else {
@@ -60,8 +60,8 @@
 			}
 			if (isolButton.isSelected()) {
-				dlg.mark.setCategory(Cat.NONE);
-				dlg.mark.setObjColour(Col.BLACK);
-				dlg.mark.addObjColour(Col.RED);
-				dlg.mark.addObjColour(Col.BLACK);
+				dlg.panelMain.mark.setCategory(Cat.NONE);
+				dlg.panelMain.mark.setObjColour(Col.BLACK);
+				dlg.panelMain.mark.addObjColour(Col.RED);
+				dlg.panelMain.mark.addObjColour(Col.BLACK);
 				isolButton.setBorderPainted(true);
 			} else {
@@ -90,15 +90,15 @@
 				JRadioButton button = shapes.get(shp);
 				if (button.isSelected()) {
-					dlg.mark.setShape(shp);
+					dlg.panelMain.mark.setShape(shp);
 					if (isolButton.isSelected())
-						dlg.mark.setObject(isdObjects.get(shp));
+						dlg.panelMain.mark.setObject(isdObjects.get(shp));
 					else
-						dlg.mark.setObject(carObjects.get(shp));
+						dlg.panelMain.mark.setObject(carObjects.get(shp));
 					button.setBorderPainted(true);
 				} else
 					button.setBorderPainted(false);
 			}
-			topmarkButton.setVisible(dlg.mark.testValid());
-			lightButton.setVisible(dlg.mark.testValid());
+			topmarkButton.setVisible(dlg.panelMain.mark.testValid());
+			lightButton.setVisible(dlg.panelMain.mark.testValid());
 		}
 	};
@@ -107,28 +107,28 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (topmarkButton.isSelected()) {
-				dlg.mark.setTopPattern(Pat.NONE);
-				dlg.mark.setTopColour(Col.BLACK);
-				switch (dlg.mark.getCategory()) {
+				dlg.panelMain.mark.setTopPattern(Pat.NONE);
+				dlg.panelMain.mark.setTopColour(Col.BLACK);
+				switch (dlg.panelMain.mark.getCategory()) {
 				case CAM_NORTH:
-					dlg.mark.setTopmark(Top.NORTH);
+					dlg.panelMain.mark.setTopmark(Top.NORTH);
 					break;
 				case CAM_SOUTH:
-					dlg.mark.setTopmark(Top.SOUTH);
+					dlg.panelMain.mark.setTopmark(Top.SOUTH);
 					break;
 				case CAM_EAST:
-					dlg.mark.setTopmark(Top.EAST);
+					dlg.panelMain.mark.setTopmark(Top.EAST);
 					break;
 				case CAM_WEST:
-					dlg.mark.setTopmark(Top.WEST);
+					dlg.panelMain.mark.setTopmark(Top.WEST);
 					break;
 				default:
-					dlg.mark.setTopmark(Top.SPHERES2);
+					dlg.panelMain.mark.setTopmark(Top.SPHERES2);
 					break;
 				}
 				topmarkButton.setBorderPainted(true);
 			} else {
-				dlg.mark.setTopmark(Top.NONE);
-				dlg.mark.setTopPattern(Pat.NONE);
-				dlg.mark.setTopColour(Col.UNKNOWN);
+				dlg.panelMain.mark.setTopmark(Top.NONE);
+				dlg.panelMain.mark.setTopPattern(Pat.NONE);
+				dlg.panelMain.mark.setTopColour(Col.UNKNOWN);
 				topmarkButton.setBorderPainted(false);
 			}
@@ -140,30 +140,30 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (lightButton.isSelected()) {
-				dlg.mark.setLightAtt(Att.COL, 0, Col.WHITE);
-				switch (dlg.mark.getCategory()) {
+				dlg.panelMain.mark.setLightAtt(Att.COL, 0, Col.WHITE);
+				switch (dlg.panelMain.mark.getCategory()) {
 				case CAM_NORTH:
-					dlg.mark.setLightAtt(Att.CHR, 0, "Q");
-					dlg.mark.setLightAtt(Att.GRP, 0, "");
+					dlg.panelMain.mark.setLightAtt(Att.CHR, 0, "Q");
+					dlg.panelMain.mark.setLightAtt(Att.GRP, 0, "");
 					break;
 				case CAM_SOUTH:
-					dlg.mark.setLightAtt(Att.CHR, 0, "Q+LFl");
-					dlg.mark.setLightAtt(Att.GRP, 0, "6");
+					dlg.panelMain.mark.setLightAtt(Att.CHR, 0, "Q+LFl");
+					dlg.panelMain.mark.setLightAtt(Att.GRP, 0, "6");
 					break;
 				case CAM_EAST:
-					dlg.mark.setLightAtt(Att.CHR, 0, "Q");
-					dlg.mark.setLightAtt(Att.GRP, 0, "3");
+					dlg.panelMain.mark.setLightAtt(Att.CHR, 0, "Q");
+					dlg.panelMain.mark.setLightAtt(Att.GRP, 0, "3");
 					break;
 				case CAM_WEST:
-					dlg.mark.setLightAtt(Att.CHR, 0, "Q");
-					dlg.mark.setLightAtt(Att.GRP, 0, "9");
+					dlg.panelMain.mark.setLightAtt(Att.CHR, 0, "Q");
+					dlg.panelMain.mark.setLightAtt(Att.GRP, 0, "9");
 					break;
 				default:
-					dlg.mark.setLightAtt(Att.CHR, 0, "Fl");
-					dlg.mark.setLightAtt(Att.GRP, 0, "2");
+					dlg.panelMain.mark.setLightAtt(Att.CHR, 0, "Fl");
+					dlg.panelMain.mark.setLightAtt(Att.GRP, 0, "2");
 					break;
 				}
 				lightButton.setBorderPainted(true);
 			} else {
-				dlg.mark.clrLight();
+				dlg.panelMain.mark.clrLight();
 				lightButton.setBorderPainted(false);
 			}
@@ -205,20 +205,20 @@
 
 	public void syncPanel() {
-		northButton.setBorderPainted(dlg.mark.getCategory() == Cat.CAM_NORTH);
-		southButton.setBorderPainted(dlg.mark.getCategory() == Cat.CAM_SOUTH);
-		eastButton.setBorderPainted(dlg.mark.getCategory() == Cat.CAM_EAST);
-		westButton.setBorderPainted(dlg.mark.getCategory() == Cat.CAM_WEST);
-		isolButton.setBorderPainted(SeaMark.GrpMAP.get(dlg.mark.getObject()) == Grp.ISD);
+		northButton.setBorderPainted(dlg.panelMain.mark.getCategory() == Cat.CAM_NORTH);
+		southButton.setBorderPainted(dlg.panelMain.mark.getCategory() == Cat.CAM_SOUTH);
+		eastButton.setBorderPainted(dlg.panelMain.mark.getCategory() == Cat.CAM_EAST);
+		westButton.setBorderPainted(dlg.panelMain.mark.getCategory() == Cat.CAM_WEST);
+		isolButton.setBorderPainted(SeaMark.GrpMAP.get(dlg.panelMain.mark.getObject()) == Grp.ISD);
 		for (Shp shp : shapes.keySet()) {
 			JRadioButton button = shapes.get(shp);
-			button.setBorderPainted(dlg.mark.getShape() == shp);
-		}
-		topmarkButton.setBorderPainted(dlg.mark.getTopmark() != Top.NONE);
-		topmarkButton.setSelected(dlg.mark.getTopmark() != Top.NONE);
-		topmarkButton.setVisible(dlg.mark.testValid());
-		Boolean lit = (dlg.mark.getLightAtt(Att.COL, 0) != Col.UNKNOWN) && !((String)dlg.mark.getLightAtt(Att.CHR, 0)).isEmpty();
+			button.setBorderPainted(dlg.panelMain.mark.getShape() == shp);
+		}
+		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setVisible(dlg.panelMain.mark.testValid());
+		Boolean lit = (dlg.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKNOWN) && !((String)dlg.panelMain.mark.getLightAtt(Att.CHR, 0)).isEmpty();
 		lightButton.setBorderPainted(lit);
 		lightButton.setSelected(lit);
-		lightButton.setVisible(dlg.mark.testValid());
+		lightButton.setVisible(dlg.panelMain.mark.testValid());
 	}
 
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java	(revision 27200)
@@ -24,7 +24,7 @@
 			for (Cat cat : landCats.keySet()) {
 				int idx = landCats.get(cat);
-				if (dlg.mark != null && (idx == landCatBox.getSelectedIndex())) {
-					dlg.mark.setCategory(cat);
-					dlg.mark.testValid();
+				if (dlg.node != null && (idx == landCatBox.getSelectedIndex())) {
+					dlg.panelMain.mark.setCategory(cat);
+					dlg.panelMain.mark.testValid();
 				}
 			}
@@ -37,7 +37,7 @@
 			for (Cat cat : trafficCats.keySet()) {
 				int idx = trafficCats.get(cat);
-				if (dlg.mark != null && (idx == trafficCatBox.getSelectedIndex())) {
-					dlg.mark.setCategory(cat);
-					dlg.mark.testValid();
+				if (dlg.node != null && (idx == trafficCatBox.getSelectedIndex())) {
+					dlg.panelMain.mark.setCategory(cat);
+					dlg.panelMain.mark.testValid();
 				}
 			}
@@ -50,7 +50,7 @@
 			for (Cat cat : warningCats.keySet()) {
 				int idx = warningCats.get(cat);
-				if (dlg.mark != null && (idx == warningCatBox.getSelectedIndex())) {
-					dlg.mark.setCategory(cat);
-					dlg.mark.testValid();
+				if (dlg.node != null && (idx == warningCatBox.getSelectedIndex())) {
+					dlg.panelMain.mark.setCategory(cat);
+					dlg.panelMain.mark.testValid();
 				}
 			}
@@ -72,14 +72,14 @@
 				JRadioButton button = objects.get(obj);
 				if (button.isSelected()) {
-					dlg.mark.setObject(obj);
+					dlg.panelMain.mark.setObject(obj);
 					button.setBorderPainted(true);
 				} else
 					button.setBorderPainted(false);
 			}
-			if (dlg.mark.getObject() == Obj.LITVES)
-				dlg.mark.setShape(Shp.SUPER);
-			else if (dlg.mark.getObject() == Obj.LITFLT)
-				dlg.mark.setShape(Shp.FLOAT);
-			else dlg.mark.setShape(Shp.UNKNOWN);
+			if (dlg.panelMain.mark.getObject() == Obj.LITVES)
+				dlg.panelMain.mark.setShape(Shp.SUPER);
+			else if (dlg.panelMain.mark.getObject() == Obj.LITFLT)
+				dlg.panelMain.mark.setShape(Shp.FLOAT);
+			else dlg.panelMain.mark.setShape(Shp.UNKNOWN);
 			if (landButton.isSelected()) {
 				categoryLabel.setVisible(true);
@@ -101,5 +101,5 @@
 				alWarningCatBox.actionPerformed(null);
 			} else {
-				dlg.mark.setCategory(Cat.NONE);
+				dlg.panelMain.mark.setCategory(Cat.NONE);
 				categoryLabel.setVisible(false);
 				landCatBox.setVisible(false);
@@ -107,5 +107,5 @@
 				warningCatBox.setVisible(false);
 			}
-			dlg.mark.testValid();
+			dlg.panelMain.mark.testValid();
 		}
 	};
@@ -197,5 +197,5 @@
 
 	public void syncPanel() {
-		if ((dlg.mark.getObject() == Obj.LNDMRK) && (dlg.mark.getCategory() != Cat.NONE)) {
+		if ((dlg.panelMain.mark.getObject() == Obj.LNDMRK) && (dlg.panelMain.mark.getCategory() != Cat.NONE)) {
 			categoryLabel.setVisible(true);
 			landCatBox.setVisible(true);
@@ -204,8 +204,8 @@
 			for (Cat cat : landCats.keySet()) {
 				int item = landCats.get(cat);
-				if (dlg.mark.getCategory() == cat)
+				if (dlg.panelMain.mark.getCategory() == cat)
 					landCatBox.setSelectedIndex(item);
 			}
-		} else if (dlg.mark.getObject() == Obj.SISTAT) {
+		} else if (dlg.panelMain.mark.getObject() == Obj.SISTAT) {
 				categoryLabel.setVisible(true);
 				trafficCatBox.setVisible(true);
@@ -214,8 +214,8 @@
 				for (Cat cat : trafficCats.keySet()) {
 					int item = trafficCats.get(cat);
-					if (dlg.mark.getCategory() == cat)
+					if (dlg.panelMain.mark.getCategory() == cat)
 						trafficCatBox.setSelectedIndex(item);
 				}
-		} else if (dlg.mark.getObject() == Obj.SISTAW) {
+		} else if (dlg.panelMain.mark.getObject() == Obj.SISTAW) {
 			categoryLabel.setVisible(true);
 			warningCatBox.setVisible(true);
@@ -224,5 +224,5 @@
 			for (Cat cat : warningCats.keySet()) {
 				int item = warningCats.get(cat);
-				if (dlg.mark.getCategory() == cat)
+				if (dlg.panelMain.mark.getCategory() == cat)
 					warningCatBox.setSelectedIndex(item);
 			}
@@ -235,7 +235,7 @@
 		for (Obj obj : objects.keySet()) {
 			JRadioButton button = objects.get(obj);
-			button.setBorderPainted(dlg.mark.getObject() == obj);
-		}
-		dlg.mark.testValid();
+			button.setBorderPainted(dlg.panelMain.mark.getObject() == obj);
+		}
+		dlg.panelMain.mark.testValid();
 	}
 	
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 27200)
@@ -21,5 +21,5 @@
 	private ActionListener alGroup = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setLightAtt(Att.GRP, 0, groupBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.GRP, 0, groupBox.getText());
 		}
 	};
@@ -28,5 +28,5 @@
 	private ActionListener alPeriod = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setLightAtt(Att.PER, 0, periodBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.PER, 0, periodBox.getText());
 		}
 	};
@@ -35,5 +35,5 @@
 	private ActionListener alSequence = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setLightAtt(Att.SEQ, 0, sequenceBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.SEQ, 0, sequenceBox.getText());
 		}
 	};
@@ -46,5 +46,5 @@
 				int idx = visibilities.get(vis);
 				if (idx == visibilityBox.getSelectedIndex())
-					dlg.mark.setLightAtt(Att.VIS, 0, vis);
+					dlg.panelMain.mark.setLightAtt(Att.VIS, 0, vis);
 			}
 		}
@@ -54,5 +54,5 @@
 	private ActionListener alHeight = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setLightAtt(Att.HGT, 0, heightBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.HGT, 0, heightBox.getText());
 		}
 	};
@@ -61,5 +61,5 @@
 	private ActionListener alRange = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setLightAtt(Att.RNG, 0, rangeBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.RNG, 0, rangeBox.getText());
 		}
 	};
@@ -68,5 +68,5 @@
 	private ActionListener alOrientation = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setLightAtt(Att.ORT, 0, orientationBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.ORT, 0, orientationBox.getText());
 		}
 	};
@@ -75,5 +75,5 @@
 	private ActionListener alMultiple = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setLightAtt(Att.MLT, 0, multipleBox.getText());
+			dlg.panelMain.mark.setLightAtt(Att.MLT, 0, multipleBox.getText());
 		}
 	};
@@ -86,8 +86,8 @@
 				int idx = categories.get(lit);
 				if (idx == categoryBox.getSelectedIndex())
-					dlg.mark.setLightAtt(Att.LIT, 0, lit);
-			}
-			if (dlg.mark.getLightAtt(Att.LIT, 0) == Lit.DIR) {
-				dlg.mark.setLightAtt(Att.MLT, 0, "");
+					dlg.panelMain.mark.setLightAtt(Att.LIT, 0, lit);
+			}
+			if (dlg.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.DIR) {
+				dlg.panelMain.mark.setLightAtt(Att.MLT, 0, "");
 				multipleBox.setText("");
 				orientationLabel.setVisible(true);
@@ -95,6 +95,6 @@
 				multipleLabel.setVisible(false);
 				multipleBox.setVisible(false);
-			} else if ((dlg.mark.getLightAtt(Att.LIT, 0) == Lit.VERT) || (dlg.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ)) {
-				dlg.mark.setLightAtt(Att.ORT, 0, "");
+			} else if ((dlg.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.VERT) || (dlg.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ)) {
+				dlg.panelMain.mark.setLightAtt(Att.ORT, 0, "");
 				orientationBox.setText("");
 				orientationLabel.setVisible(false);
@@ -103,7 +103,7 @@
 				multipleBox.setVisible(true);
 			} else {
-				dlg.mark.setLightAtt(Att.MLT, 0, "");
+				dlg.panelMain.mark.setLightAtt(Att.MLT, 0, "");
 				multipleBox.setText("");
-				dlg.mark.setLightAtt(Att.ORT, 0, "");
+				dlg.panelMain.mark.setLightAtt(Att.ORT, 0, "");
 				orientationBox.setText("");
 				orientationLabel.setVisible(false);
@@ -122,5 +122,5 @@
 				int idx = exhibitions.get(exh);
 				if (idx == exhibitionBox.getSelectedIndex())
-					dlg.mark.setLightAtt(Att.EXH, 0, exh);
+					dlg.panelMain.mark.setLightAtt(Att.EXH, 0, exh);
 			}
 		}
@@ -143,6 +143,6 @@
 					panelSector = null;
 				}
-				while (dlg.mark.getSectorCount() > 1)
-					dlg.mark.delLight(1);
+				while (dlg.panelMain.mark.getSectorCount() > 1)
+					dlg.panelMain.mark.delLight(1);
 			}
 		}
@@ -295,26 +295,26 @@
 		multipleLabel.setVisible(false);
 		multipleBox.setVisible(false);
-		groupBox.setText((String)dlg.mark.getLightAtt(Att.GRP, 0));
-		periodBox.setText((String)dlg.mark.getLightAtt(Att.PER, 0));
-		sequenceBox.setText((String)dlg.mark.getLightAtt(Att.SEQ, 0));
-		heightBox.setText((String)dlg.mark.getLightAtt(Att.HGT, 0));
-		rangeBox.setText((String)dlg.mark.getLightAtt(Att.RNG, 0));
-		orientationBox.setText((String)dlg.mark.getLightAtt(Att.ORT, 0));
-		orientationBox.setVisible(dlg.mark.getLightAtt(Att.LIT, 0) == Lit.DIR);
-		multipleBox.setText((String)dlg.mark.getLightAtt(Att.MLT, 0));
-		multipleBox.setVisible((dlg.mark.getLightAtt(Att.LIT, 0) == Lit.VERT) || (dlg.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ));
+		groupBox.setText((String)dlg.panelMain.mark.getLightAtt(Att.GRP, 0));
+		periodBox.setText((String)dlg.panelMain.mark.getLightAtt(Att.PER, 0));
+		sequenceBox.setText((String)dlg.panelMain.mark.getLightAtt(Att.SEQ, 0));
+		heightBox.setText((String)dlg.panelMain.mark.getLightAtt(Att.HGT, 0));
+		rangeBox.setText((String)dlg.panelMain.mark.getLightAtt(Att.RNG, 0));
+		orientationBox.setText((String)dlg.panelMain.mark.getLightAtt(Att.ORT, 0));
+		orientationBox.setVisible(dlg.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.DIR);
+		multipleBox.setText((String)dlg.panelMain.mark.getLightAtt(Att.MLT, 0));
+		multipleBox.setVisible((dlg.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.VERT) || (dlg.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ));
 		for (Vis vis : visibilities.keySet()) {
 			int item = visibilities.get(vis);
-			if (dlg.mark.getLightAtt(Att.VIS, 0) == vis)
+			if (dlg.panelMain.mark.getLightAtt(Att.VIS, 0) == vis)
 				visibilityBox.setSelectedIndex(item);
 		}
 		for (Lit lit : categories.keySet()) {
 			int item = categories.get(lit);
-			if (dlg.mark.getLightAtt(Att.LIT, 0) == lit)
+			if (dlg.panelMain.mark.getLightAtt(Att.LIT, 0) == lit)
 				categoryBox.setSelectedIndex(item);
 		}
 		for (Exh exh : exhibitions.keySet()) {
 			int item = exhibitions.get(exh);
-			if (dlg.mark.getLightAtt(Att.EXH, 0) == exh)
+			if (dlg.panelMain.mark.getLightAtt(Att.EXH, 0) == exh)
 				exhibitionBox.setSelectedIndex(item);
 		}
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java	(revision 27200)
@@ -14,4 +14,5 @@
 
 	private OSeaMAction dlg;
+	public SeaMark mark = null;
 	public PanelChan panelChan = null;
 	public PanelHaz panelHaz = null;
@@ -27,6 +28,5 @@
 	private ActionListener alName = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			if (dlg.mark != null)
-				dlg.mark.setName(nameBox.getText());
+			mark.setName(nameBox.getText());
 		}
 	};
@@ -34,7 +34,5 @@
 	private ActionListener alSave = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			if (dlg.mark != null) {
-				dlg.mark.saveSign(dlg.node);
-			}
+			mark.saveSign(dlg.node);
 		}
 	};
@@ -77,5 +75,5 @@
 			if (chanButton.isSelected()) {
 				chanButton.setBorderPainted(true);
-				dlg.mark.clearSign();
+				mark.clearSign();
 				panelChan.syncPanel();
 				panelChan.setVisible(true);
@@ -86,5 +84,5 @@
 			if (hazButton.isSelected()) {
 				hazButton.setBorderPainted(true);
-				dlg.mark.clearSign();
+				mark.clearSign();
 				panelHaz.syncPanel();
 				panelHaz.setVisible(true);
@@ -95,5 +93,5 @@
 			if (specButton.isSelected()) {
 				specButton.setBorderPainted(true);
-				dlg.mark.clearSign();
+				mark.clearSign();
 				panelSpec.syncPanel();
 				panelSpec.setVisible(true);
@@ -104,5 +102,5 @@
 			if (lightsButton.isSelected()) {
 				lightsButton.setBorderPainted(true);
-				dlg.mark.clearSign();
+				mark.clearSign();
 				panelLights.syncPanel();
 				panelLights.setVisible(true);
@@ -162,4 +160,7 @@
 
 		dlg = dia;
+		mark = new SeaMark(dlg);
+		mark.setBounds(new Rectangle(235, 0, 165, 160));
+		this.add(mark);
 		panelChan = new PanelChan(dlg);
 		panelChan.setBounds(new Rectangle(65, 0, 170, 160));
@@ -194,5 +195,5 @@
 		this.add(getButton(specButton, 0, 80, 62, 40, "Spec"), null);
 		this.add(getButton(lightsButton, 0, 120, 62, 40, "Lights"), null);
-		this.add(panelChan, null);
+		this.add(panelChan);
 		this.add(panelHaz, null);
 		this.add(panelSpec, null);
@@ -285,5 +286,5 @@
 		panelLit.setVisible(false);
 		nameBox.setEnabled(false);
-		if (dlg.mark != null) {
+		if (mark != null) {
 			nameBox.setEnabled(true);
 			chanButton.setEnabled(true);
@@ -291,6 +292,6 @@
 			specButton.setEnabled(true);
 			lightsButton.setEnabled(true);
-			nameBox.setText(dlg.mark.getName());
-			switch (SeaMark.GrpMAP.get(dlg.mark.getObject())) {
+			nameBox.setText(mark.getName());
+			switch (SeaMark.GrpMAP.get(mark.getObject())) {
 			case LAT:
 			case SAW:
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMore.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMore.java	(revision 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMore.java	(revision 27200)
@@ -19,5 +19,5 @@
 	private ActionListener alInfo = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setInfo(infoBox.getText());
+			dlg.panelMain.mark.setInfo(infoBox.getText());
 		}
 	};
@@ -26,5 +26,5 @@
 	private ActionListener alSource = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setSource(sourceBox.getText());
+			dlg.panelMain.mark.setSource(sourceBox.getText());
 		}
 	};
@@ -33,5 +33,5 @@
 	private ActionListener alElev = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setElevation(elevBox.getText());
+			dlg.panelMain.mark.setElevation(elevBox.getText());
 		}
 	};
@@ -40,5 +40,5 @@
 	private ActionListener alHeight = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setObjectHeight(heightBox.getText());
+			dlg.panelMain.mark.setObjectHeight(heightBox.getText());
 		}
 	};
@@ -50,6 +50,6 @@
 			for (Sts sts : statuses.keySet()) {
 				int idx = statuses.get(sts);
-				if (dlg.mark != null && (idx == statusBox.getSelectedIndex()))
-					dlg.mark.setStatus(sts);
+				if (dlg.panelMain.mark != null && (idx == statusBox.getSelectedIndex()))
+					dlg.panelMain.mark.setStatus(sts);
 			}
 		}
@@ -62,6 +62,6 @@
 			for (Cns cns : constructions.keySet()) {
 				int idx = constructions.get(cns);
-				if (dlg.mark != null && (idx == constrBox.getSelectedIndex()))
-					dlg.mark.setConstr(cns);
+				if (dlg.panelMain.mark != null && (idx == constrBox.getSelectedIndex()))
+					dlg.panelMain.mark.setConstr(cns);
 			}
 		}
@@ -74,6 +74,6 @@
 			for (Con con : conspicuities.keySet()) {
 				int idx = conspicuities.get(con);
-				if (dlg.mark != null && (idx == conBox.getSelectedIndex()))
-					dlg.mark.setConsp(con);
+				if (dlg.panelMain.mark != null && (idx == conBox.getSelectedIndex()))
+					dlg.panelMain.mark.setConsp(con);
 			}
 		}
@@ -86,6 +86,6 @@
 			for (Con con : reflectivities.keySet()) {
 				int idx = reflectivities.get(con);
-				if (dlg.mark != null && (idx == reflBox.getSelectedIndex()))
-					dlg.mark.setRefl(con);
+				if (dlg.panelMain.mark != null && (idx == reflBox.getSelectedIndex()))
+					dlg.panelMain.mark.setRefl(con);
 			}
 		}
@@ -99,25 +99,25 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (regionAButton.isSelected()) {
-				dlg.mark.setRegion(Reg.A);
-				switch (dlg.mark.getCategory()) {
+				dlg.panelMain.mark.setRegion(Reg.A);
+				switch (dlg.panelMain.mark.getCategory()) {
 				case LAM_PORT:
-					dlg.mark.setObjColour(Col.RED);
-					dlg.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjColour(Col.RED);
+					dlg.panelMain.mark.setObjPattern(Pat.NONE);
 					break;
 				case LAM_PPORT:
-					dlg.mark.setObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.GREEN);
-					dlg.mark.addObjColour(Col.RED);
-					dlg.mark.setObjPattern(Pat.HORIZ);
+					dlg.panelMain.mark.setObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.GREEN);
+					dlg.panelMain.mark.addObjColour(Col.RED);
+					dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
 					break;
 				case LAM_STBD:
-					dlg.mark.setObjColour(Col.GREEN);
-					dlg.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjColour(Col.GREEN);
+					dlg.panelMain.mark.setObjPattern(Pat.NONE);
 					break;
 				case LAM_PSTBD:
-					dlg.mark.setObjColour(Col.GREEN);
-					dlg.mark.addObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.GREEN);
-					dlg.mark.setObjPattern(Pat.HORIZ);
+					dlg.panelMain.mark.setObjColour(Col.GREEN);
+					dlg.panelMain.mark.addObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.GREEN);
+					dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
 					break;
 				}
@@ -127,25 +127,25 @@
 			}
 			if (regionBButton.isSelected()) {
-				dlg.mark.setRegion(Reg.B);
-				switch (dlg.mark.getCategory()) {
+				dlg.panelMain.mark.setRegion(Reg.B);
+				switch (dlg.panelMain.mark.getCategory()) {
 				case LAM_PORT:
-					dlg.mark.setObjColour(Col.GREEN);
-					dlg.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjColour(Col.GREEN);
+					dlg.panelMain.mark.setObjPattern(Pat.NONE);
 					break;
 				case LAM_PPORT:
-					dlg.mark.setObjColour(Col.GREEN);
-					dlg.mark.addObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.GREEN);
-					dlg.mark.setObjPattern(Pat.HORIZ);
+					dlg.panelMain.mark.setObjColour(Col.GREEN);
+					dlg.panelMain.mark.addObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.GREEN);
+					dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
 					break;
 				case LAM_STBD:
-					dlg.mark.setObjColour(Col.RED);
-					dlg.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjColour(Col.RED);
+					dlg.panelMain.mark.setObjPattern(Pat.NONE);
 					break;
 				case LAM_PSTBD:
-					dlg.mark.setObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.GREEN);
-					dlg.mark.addObjColour(Col.RED);
-					dlg.mark.setObjPattern(Pat.HORIZ);
+					dlg.panelMain.mark.setObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.GREEN);
+					dlg.panelMain.mark.addObjColour(Col.RED);
+					dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
 					break;
 				}
@@ -155,25 +155,25 @@
 			}
 			if (regionCButton.isSelected()) {
-				dlg.mark.setRegion(Reg.C);
-				dlg.mark.setObjPattern(Pat.HORIZ);
-				switch (dlg.mark.getCategory()) {
+				dlg.panelMain.mark.setRegion(Reg.C);
+				dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
+				switch (dlg.panelMain.mark.getCategory()) {
 				case LAM_PORT:
-					dlg.mark.setObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.WHITE);
-					dlg.mark.addObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.WHITE);
+					dlg.panelMain.mark.setObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.WHITE);
+					dlg.panelMain.mark.addObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.WHITE);
 					break;
 				case LAM_PPORT:
 				case LAM_PSTBD:
-					dlg.mark.setObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.GREEN);
-					dlg.mark.addObjColour(Col.RED);
-					dlg.mark.addObjColour(Col.GREEN);
+					dlg.panelMain.mark.setObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.GREEN);
+					dlg.panelMain.mark.addObjColour(Col.RED);
+					dlg.panelMain.mark.addObjColour(Col.GREEN);
 					break;
 				case LAM_STBD:
-					dlg.mark.setObjColour(Col.GREEN);
-					dlg.mark.addObjColour(Col.WHITE);
-					dlg.mark.addObjColour(Col.GREEN);
-					dlg.mark.addObjColour(Col.WHITE);
+					dlg.panelMain.mark.setObjColour(Col.GREEN);
+					dlg.panelMain.mark.addObjColour(Col.WHITE);
+					dlg.panelMain.mark.addObjColour(Col.GREEN);
+					dlg.panelMain.mark.addObjColour(Col.WHITE);
 					break;
 				}
@@ -303,29 +303,29 @@
 	public void syncPanel() {
 		panelPat.syncPanel();
-		regionAButton.setBorderPainted(dlg.mark.getRegion() == Reg.A);
-		regionBButton.setBorderPainted(dlg.mark.getRegion() == Reg.B);
-		regionCButton.setBorderPainted(dlg.mark.getRegion() == Reg.C);
-		elevBox.setText(dlg.mark.getElevation());
-		heightBox.setText(dlg.mark.getObjectHeight());
-		sourceBox.setText(dlg.mark.getSource());
-		infoBox.setText(dlg.mark.getInfo());
+		regionAButton.setBorderPainted(dlg.panelMain.mark.getRegion() == Reg.A);
+		regionBButton.setBorderPainted(dlg.panelMain.mark.getRegion() == Reg.B);
+		regionCButton.setBorderPainted(dlg.panelMain.mark.getRegion() == Reg.C);
+		elevBox.setText(dlg.panelMain.mark.getElevation());
+		heightBox.setText(dlg.panelMain.mark.getObjectHeight());
+		sourceBox.setText(dlg.panelMain.mark.getSource());
+		infoBox.setText(dlg.panelMain.mark.getInfo());
 		for (Sts sts : statuses.keySet()) {
 			int item = statuses.get(sts);
-			if (dlg.mark.getStatus() == sts)
+			if (dlg.panelMain.mark.getStatus() == sts)
 				statusBox.setSelectedIndex(item);
 		}
 		for (Cns cns : constructions.keySet()) {
 			int item = constructions.get(cns);
-			if (dlg.mark.getConstr() == cns)
+			if (dlg.panelMain.mark.getConstr() == cns)
 				constrBox.setSelectedIndex(item);
 		}
 		for (Con con : conspicuities.keySet()) {
 			int item = conspicuities.get(con);
-			if (dlg.mark.getConsp() == con)
+			if (dlg.panelMain.mark.getConsp() == con)
 				conBox.setSelectedIndex(item);
 		}
 		for (Con con : reflectivities.keySet()) {
 			int item = reflectivities.get(con);
-			if (dlg.mark.getRefl() == con)
+			if (dlg.panelMain.mark.getRefl() == con)
 				reflBox.setSelectedIndex(item);
 		}
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPat.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPat.java	(revision 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPat.java	(revision 27200)
@@ -31,10 +31,10 @@
 				JRadioButton button = patterns.get(pat);
 				if (button.isSelected()) {
-					dlg.mark.setPattern(ent, pat);
+					dlg.panelMain.mark.setPattern(ent, pat);
 					button.setBorderPainted(true);
 				} else
 					button.setBorderPainted(false);
 			}
-			switch (dlg.mark.getPattern(ent)) {
+			switch (dlg.panelMain.mark.getPattern(ent)) {
 			case NONE:
 				panelCol.trimStack(1);
@@ -73,5 +73,5 @@
 		for (Pat pat : patterns.keySet()) {
 			JRadioButton button = patterns.get(pat);
-			if (dlg.mark.getPattern(ent) == pat) {
+			if (dlg.panelMain.mark.getPattern(ent) == pat) {
 				button.setBorderPainted(true);
 			} else
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java	(revision 27200)
@@ -31,49 +31,49 @@
 				JRadioButton button = shapes.get(shp);
 				if (button.isSelected()) {
-					dlg.mark.setShape(shp);
-					dlg.mark.setObject(objects.get(shp));
+					dlg.panelMain.mark.setShape(shp);
+					dlg.panelMain.mark.setObject(objects.get(shp));
 					button.setBorderPainted(true);
 				} else
 					button.setBorderPainted(false);
 			}
-			if (dlg.mark.testValid()) {
+			if (dlg.panelMain.mark.testValid()) {
 				dlg.panelMain.panelChan.topmarkButton.setVisible(true);
 				dlg.panelMain.panelChan.lightButton.setVisible(true);
-				if (dlg.mark.getCategory() == Cat.LAM_PORT) {
-					switch (dlg.mark.getRegion()) {
+				if (dlg.panelMain.mark.getCategory() == Cat.LAM_PORT) {
+					switch (dlg.panelMain.mark.getRegion()) {
 					case A:
-						dlg.mark.setObjPattern(Pat.NONE);
-						dlg.mark.setObjColour(Col.RED);
+						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjColour(Col.RED);
 						break;
 					case B:
-						dlg.mark.setObjPattern(Pat.NONE);
-						dlg.mark.setObjColour(Col.GREEN);
+						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjColour(Col.GREEN);
 						break;
 					case C:
-						dlg.mark.setObjPattern(Pat.HORIZ);
-						dlg.mark.setObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.WHITE);
-						dlg.mark.addObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.WHITE);
+						dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
+						dlg.panelMain.mark.setObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.WHITE);
+						dlg.panelMain.mark.addObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.WHITE);
 						break;
 					}
 				} else {
-					dlg.mark.setObjPattern(Pat.HORIZ);
-					switch (dlg.mark.getRegion()) {
+					dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
+					switch (dlg.panelMain.mark.getRegion()) {
 					case A:
-						dlg.mark.setObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.RED);
+						dlg.panelMain.mark.setObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.RED);
 						break;
 					case B:
-						dlg.mark.setObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.setObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
 						break;
 					case C:
-						dlg.mark.setObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.setObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
 						break;
 					}
@@ -104,5 +104,5 @@
 		for (Shp shp : shapes.keySet()) {
 			JRadioButton button = shapes.get(shp);
-			if (dlg.mark.getShape() == shp) {
+			if (dlg.panelMain.mark.getShape() == shp) {
 				button.setBorderPainted(true);
 			} else
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelRadar.java	(revision 27200)
@@ -27,5 +27,5 @@
 				JRadioButton button = rads.get(rtb);
 				if (button.isSelected()) {
-					dlg.mark.setRadar(rtb);
+					dlg.panelMain.mark.setRadar(rtb);
 				}
 			}
@@ -37,5 +37,5 @@
 	private ActionListener alGroup = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setRaconGroup(groupBox.getText());
+			dlg.panelMain.mark.setRaconGroup(groupBox.getText());
 		}
 	};
@@ -44,5 +44,5 @@
 	private ActionListener alPeriod = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setRaconPeriod(periodBox.getText());
+			dlg.panelMain.mark.setRaconPeriod(periodBox.getText());
 		}
 	};
@@ -51,5 +51,5 @@
 	private ActionListener alSeq = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setRaconSequence(seqBox.getText());
+			dlg.panelMain.mark.setRaconSequence(seqBox.getText());
 		}
 	};
@@ -58,5 +58,5 @@
 	private ActionListener alRange = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setRaconRange(rangeBox.getText());
+			dlg.panelMain.mark.setRaconRange(rangeBox.getText());
 		}
 	};
@@ -65,5 +65,5 @@
 	private ActionListener alSector1 = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setRaconSector1(sector1Box.getText());
+			dlg.panelMain.mark.setRaconSector1(sector1Box.getText());
 		}
 	};
@@ -72,5 +72,5 @@
 	private ActionListener alSector2 = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			dlg.mark.setRaconSector2(sector2Box.getText());
+			dlg.panelMain.mark.setRaconSector2(sector2Box.getText());
 		}
 	};
@@ -145,5 +145,5 @@
 
 	public void syncPanel() {
-		boolean rad = ((dlg.mark.getRadar() != Rtb.NONE) && (dlg.mark.getRadar() != Rtb.REFLECTOR));
+		boolean rad = ((dlg.panelMain.mark.getRadar() != Rtb.NONE) && (dlg.panelMain.mark.getRadar() != Rtb.REFLECTOR));
 		groupLabel.setVisible(rad);
 		groupBox.setVisible(rad);
@@ -160,12 +160,12 @@
 		sectorsLabel.setVisible(rad);
 		for (Rtb rtb : rads.keySet()) {
-			rads.get(rtb).setBorderPainted(dlg.mark.getRadar() == rtb);
+			rads.get(rtb).setBorderPainted(dlg.panelMain.mark.getRadar() == rtb);
 		}
-		groupBox.setText(dlg.mark.getRaconGroup());
-		seqBox.setText(dlg.mark.getRaconSequence());
-		periodBox.setText(dlg.mark.getRaconPeriod());
-		rangeBox.setText(dlg.mark.getRaconRange());
-		sector1Box.setText(dlg.mark.getRaconSector1());
-		sector2Box.setText(dlg.mark.getRaconSector2());
+		groupBox.setText(dlg.panelMain.mark.getRaconGroup());
+		seqBox.setText(dlg.panelMain.mark.getRaconSequence());
+		periodBox.setText(dlg.panelMain.mark.getRaconPeriod());
+		rangeBox.setText(dlg.panelMain.mark.getRaconRange());
+		sector1Box.setText(dlg.panelMain.mark.getRaconSector1());
+		sector2Box.setText(dlg.panelMain.mark.getRaconSector2());
 	}
 
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java	(revision 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java	(revision 27200)
@@ -27,15 +27,15 @@
 				JRadioButton button = shapes.get(shp);
 				if (button.isSelected()) {
-					dlg.mark.setShape(shp);
-					dlg.mark.setObject(objects.get(shp));
+					dlg.panelMain.mark.setShape(shp);
+					dlg.panelMain.mark.setObject(objects.get(shp));
 					button.setBorderPainted(true);
 				} else
 					button.setBorderPainted(false);
 			}
-			if (dlg.mark.testValid()) {
+			if (dlg.panelMain.mark.testValid()) {
 				dlg.panelMain.panelChan.topmarkButton.setVisible(true);
-				dlg.mark.setObjPattern(Pat.VERT);
-				dlg.mark.setObjColour(Col.RED);
-				dlg.mark.addObjColour(Col.WHITE);
+				dlg.panelMain.mark.setObjPattern(Pat.VERT);
+				dlg.panelMain.mark.setObjColour(Col.RED);
+				dlg.panelMain.mark.addObjColour(Col.WHITE);
 			} else {
 				dlg.panelMain.panelChan.topmarkButton.setVisible(false);
@@ -58,10 +58,10 @@
 		for (Shp shp : shapes.keySet()) {
 			JRadioButton button = shapes.get(shp);
-			if (dlg.mark.getShape() == shp) {
+			if (dlg.panelMain.mark.getShape() == shp) {
 				button.setBorderPainted(true);
 			} else
 				button.setBorderPainted(false);
 		}
-		dlg.mark.testValid();
+		dlg.panelMain.mark.testValid();
 	}
 	
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java	(revision 27200)
@@ -126,5 +126,5 @@
 
 		public int getRowCount() {
-			return dlg.mark.getSectorCount();
+			return dlg.panelMain.mark.getSectorCount();
 		}
 
@@ -152,19 +152,19 @@
 					return row;
 			case 1:
-				return dlg.mark.getLightAtt(Att.COL, row);
+				return dlg.panelMain.mark.getLightAtt(Att.COL, row);
 			case 6:
-				return (dlg.mark.getLightAtt(Att.LIT, row) == Lit.DIR);
+				return (dlg.panelMain.mark.getLightAtt(Att.LIT, row) == Lit.DIR);
 			case 7:
 			case 8:
-				if (dlg.mark.getLightAtt(Att.LIT, row) == Lit.DIR)
-					return dlg.mark.getLightAtt(Att.ORT, row);
+				if (dlg.panelMain.mark.getLightAtt(Att.LIT, row) == Lit.DIR)
+					return dlg.panelMain.mark.getLightAtt(Att.ORT, row);
 				else
-					return dlg.mark.getLightAtt(col - 1, row);
+					return dlg.panelMain.mark.getLightAtt(col - 1, row);
 			case 12:
-				return visibilities.get(dlg.mark.getLightAtt(Att.VIS, row));
+				return visibilities.get(dlg.panelMain.mark.getLightAtt(Att.VIS, row));
 			case 13:
-				return exhibitions.get(dlg.mark.getLightAtt(Att.EXH, row));
+				return exhibitions.get(dlg.panelMain.mark.getLightAtt(Att.EXH, row));
 			default:
-				return dlg.mark.getLightAtt(col - 1, row);
+				return dlg.panelMain.mark.getLightAtt(col - 1, row);
 			}
 		}
@@ -176,5 +176,5 @@
 					ImageIcon img = colours.get(colour);
 					if (img == value)
-						dlg.mark.setLightAtt(Att.COL, row, colour);
+						dlg.panelMain.mark.setLightAtt(Att.COL, row, colour);
 				}
 				break;
@@ -183,22 +183,22 @@
 			case 10:
 			case 11:
-				dlg.mark.setLightAtt(col - 1, row, value);
+				dlg.panelMain.mark.setLightAtt(col - 1, row, value);
 				break;
 			case 6:
 				if ((Boolean) value == true) {
-					dlg.mark.setLightAtt(Att.LIT, row, Lit.DIR);
-					dlg.mark.setLightAtt(Att.BEG, row, "");
-					dlg.mark.setLightAtt(Att.END, row, "");
+					dlg.panelMain.mark.setLightAtt(Att.LIT, row, Lit.DIR);
+					dlg.panelMain.mark.setLightAtt(Att.BEG, row, "");
+					dlg.panelMain.mark.setLightAtt(Att.END, row, "");
 				} else {
-					dlg.mark.setLightAtt(Att.LIT, row, Lit.UNKNOWN);
-					dlg.mark.setLightAtt(Att.ORT, row, "");
+					dlg.panelMain.mark.setLightAtt(Att.LIT, row, Lit.UNKNOWN);
+					dlg.panelMain.mark.setLightAtt(Att.ORT, row, "");
 				}
 				break;
 			case 7:
 			case 8:
-				if (dlg.mark.getLightAtt(Att.LIT, row) == Lit.DIR) {
-					dlg.mark.setLightAtt(Att.ORT, row, value);
+				if (dlg.panelMain.mark.getLightAtt(Att.LIT, row) == Lit.DIR) {
+					dlg.panelMain.mark.setLightAtt(Att.ORT, row, value);
 				} else {
-					dlg.mark.setLightAtt(col - 1, row, value);
+					dlg.panelMain.mark.setLightAtt(col - 1, row, value);
 				}
 				break;
@@ -207,5 +207,5 @@
 					String str = visibilities.get(vis);
 					if (str.equals(value))
-						dlg.mark.setLightAtt(Att.VIS, row, vis);
+						dlg.panelMain.mark.setLightAtt(Att.VIS, row, vis);
 				}
 				break;
@@ -214,9 +214,9 @@
 					String str = exhibitions.get(exh);
 					if (str.equals(value))
-						dlg.mark.setLightAtt(Att.EXH, row, exh);
+						dlg.panelMain.mark.setLightAtt(Att.EXH, row, exh);
 				}
 				break;
 			default:
-				dlg.mark.setLightAtt(col - 1, row, value);
+				dlg.panelMain.mark.setLightAtt(col - 1, row, value);
 			}
 		}
@@ -247,5 +247,5 @@
 
 	public void addSector(int idx) {
-		dlg.mark.addLight(idx);
+		dlg.panelMain.mark.addLight(idx);
 		table.setSize(860, ((table.getRowCount() * 16) + 18));
 		if (table.getRowCount() > 3) {
@@ -257,5 +257,5 @@
 
 	public void deleteSector(int idx) {
-		dlg.mark.delLight(idx);
+		dlg.panelMain.mark.delLight(idx);
 		table.setSize(860, ((table.getRowCount() * 16) + 18));
 		if (table.getRowCount() > 3) {
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java	(revision 27200)
@@ -22,6 +22,6 @@
 			for (Cat cat : categories.keySet()) {
 				int idx = categories.get(cat);
-				if (dlg.mark != null && (idx == categoryBox.getSelectedIndex()))
-					dlg.mark.setCategory(cat);
+				if (dlg.node != null && (idx == categoryBox.getSelectedIndex()))
+					dlg.panelMain.mark.setCategory(cat);
 			}
 		}
@@ -47,13 +47,13 @@
 				JRadioButton button = shapes.get(shp);
 				if (button.isSelected()) {
-					dlg.mark.setShape(shp);
-					dlg.mark.setObject(objects.get(shp));
+					dlg.panelMain.mark.setShape(shp);
+					dlg.panelMain.mark.setObject(objects.get(shp));
 					if (button == cairnButton) {
-						dlg.mark.setObjPattern(Pat.NONE);
-						dlg.mark.setObjColour(Col.UNKNOWN);
+						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjColour(Col.UNKNOWN);
 					}
-					if (dlg.mark.getObjColour(0) == Col.UNKNOWN) {
-						dlg.mark.setObjPattern(Pat.NONE);
-						dlg.mark.setObjColour(Col.YELLOW);
+					if (dlg.panelMain.mark.getObjColour(0) == Col.UNKNOWN) {
+						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjColour(Col.YELLOW);
 					}
 					button.setBorderPainted(true);
@@ -61,5 +61,5 @@
 					button.setBorderPainted(false);
 			}
-			topmarkButton.setVisible(dlg.mark.testValid());
+			topmarkButton.setVisible(dlg.panelMain.mark.testValid());
 			dlg.panelMain.panelMore.syncPanel();
 		}
@@ -69,12 +69,12 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (topmarkButton.isSelected()) {
-				dlg.mark.setTopmark(Top.X_SHAPE);
-				dlg.mark.setTopPattern(Pat.NONE);
-				dlg.mark.setTopColour(Col.YELLOW);
+				dlg.panelMain.mark.setTopmark(Top.X_SHAPE);
+				dlg.panelMain.mark.setTopPattern(Pat.NONE);
+				dlg.panelMain.mark.setTopColour(Col.YELLOW);
 				topmarkButton.setBorderPainted(true);
 			} else {
-				dlg.mark.setTopmark(Top.NONE);
-				dlg.mark.setTopPattern(Pat.NONE);
-				dlg.mark.setTopColour(Col.UNKNOWN);
+				dlg.panelMain.mark.setTopmark(Top.NONE);
+				dlg.panelMain.mark.setTopPattern(Pat.NONE);
+				dlg.panelMain.mark.setTopColour(Col.UNKNOWN);
 				topmarkButton.setBorderPainted(false);
 			}
@@ -135,5 +135,5 @@
 		for (Shp shp : shapes.keySet()) {
 			JRadioButton button = shapes.get(shp);
-			if (dlg.mark.getShape() == shp) {
+			if (dlg.panelMain.mark.getShape() == shp) {
 				button.setBorderPainted(true);
 			} else
@@ -142,10 +142,10 @@
 		for (Cat cat : categories.keySet()) {
 			int item = categories.get(cat);
-			if (dlg.mark.getCategory() == cat)
+			if (dlg.panelMain.mark.getCategory() == cat)
 				categoryBox.setSelectedIndex(item);
 		}
-		topmarkButton.setBorderPainted(dlg.mark.getTopmark() != Top.NONE);
-		topmarkButton.setSelected(dlg.mark.getTopmark() != Top.NONE);
-		topmarkButton.setVisible(dlg.mark.testValid());
+		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setVisible(dlg.panelMain.mark.testValid());
 	}
 
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java	(revision 27200)
@@ -31,49 +31,49 @@
 				JRadioButton button = shapes.get(shp);
 				if (button.isSelected()) {
-					dlg.mark.setShape(shp);
-					dlg.mark.setObject(objects.get(shp));
+					dlg.panelMain.mark.setShape(shp);
+					dlg.panelMain.mark.setObject(objects.get(shp));
 					button.setBorderPainted(true);
 				} else
 					button.setBorderPainted(false);
 			}
-			if (dlg.mark.testValid()) {
+			if (dlg.panelMain.mark.testValid()) {
 				dlg.panelMain.panelChan.topmarkButton.setVisible(true);
 				dlg.panelMain.panelChan.lightButton.setVisible(true);
-				if (dlg.mark.getCategory() == Cat.LAM_STBD) {
-					switch (dlg.mark.getRegion()) {
+				if (dlg.panelMain.mark.getCategory() == Cat.LAM_STBD) {
+					switch (dlg.panelMain.mark.getRegion()) {
 					case A:
-						dlg.mark.setObjPattern(Pat.NONE);
-						dlg.mark.setObjColour(Col.GREEN);
+						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjColour(Col.GREEN);
 						break;
 					case B:
-						dlg.mark.setObjPattern(Pat.NONE);
-						dlg.mark.setObjColour(Col.RED);
+						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjColour(Col.RED);
 						break;
 					case C:
-						dlg.mark.setObjPattern(Pat.HORIZ);
-						dlg.mark.setObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.WHITE);
-						dlg.mark.addObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.WHITE);
+						dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
+						dlg.panelMain.mark.setObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.WHITE);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.WHITE);
 						break;
 					}
 				} else {
-					dlg.mark.setObjPattern(Pat.HORIZ);
-					switch (dlg.mark.getRegion()) {
+					dlg.panelMain.mark.setObjPattern(Pat.HORIZ);
+					switch (dlg.panelMain.mark.getRegion()) {
 					case A:
-						dlg.mark.setObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.setObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
 						break;
 					case B:
-						dlg.mark.setObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.RED);
+						dlg.panelMain.mark.setObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.RED);
 						break;
 					case C:
-						dlg.mark.setObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
-						dlg.mark.addObjColour(Col.RED);
-						dlg.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.setObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
+						dlg.panelMain.mark.addObjColour(Col.RED);
+						dlg.panelMain.mark.addObjColour(Col.GREEN);
 						break;
 					}
@@ -104,5 +104,5 @@
 		for (Shp shp : shapes.keySet()) {
 			JRadioButton button = shapes.get(shp);
-			if (dlg.mark.getShape() == shp) {
+			if (dlg.panelMain.mark.getShape() == shp) {
 				button.setBorderPainted(true);
 			} else
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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java	(revision 27200)
@@ -39,5 +39,5 @@
 				JRadioButton button = tops.get(top);
 				if (button.isSelected()) {
-					dlg.mark.setTopmark(top);
+					dlg.panelMain.mark.setTopmark(top);
 					button.setBorderPainted(true);
 				} else
@@ -83,5 +83,5 @@
 		for (Top top : tops.keySet()) {
 			JRadioButton button = tops.get(top);
-			if (dlg.mark.getTopmark() == top) {
+			if (dlg.panelMain.mark.getTopmark() == top) {
 				button.setBorderPainted(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 27199)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 27200)
@@ -1112,4 +1112,5 @@
 		dlg.panelMain.panelMore.syncPanel();
 		dlg.panelMain.panelMore.setVisible(false);
+		repaint();
 	}
 
@@ -1618,9 +1619,7 @@
 		super.paintComponent(g);
 		
+		if (dlg.node == null) return;
+		
     Graphics2D g2 = (Graphics2D) g;
-    
-    if (dlg.mark == null) {
-    	return;
-    }
     
     String colStr;
@@ -1958,5 +1957,5 @@
 				}
 			}
-			String c = (String) dlg.mark.getLightAtt(Att.CHR, 0);
+			String c = (String) getLightAtt(Att.CHR, 0);
 			String tmp = "";
 			if (c.contains("+")) {
@@ -1994,6 +1993,6 @@
 			if (!tmp.isEmpty())
 				c = tmp + c;
-			if (dlg.mark.getLightAtt(Att.LIT, 0) != Lit.UNKNOWN) {
-				switch ((Lit)dlg.mark.getLightAtt(Att.LIT, 0)) {
+			if (getLightAtt(Att.LIT, 0) != Lit.UNKNOWN) {
+				switch ((Lit)getLightAtt(Att.LIT, 0)) {
 				case VERT:
 					c += "(Vert)";
