Index: /applications/editors/josm/plugins/smed/build.xml
===================================================================
--- /applications/editors/josm/plugins/smed/build.xml	(revision 27460)
+++ /applications/editors/josm/plugins/smed/build.xml	(revision 27461)
@@ -30,5 +30,5 @@
 <project name="SeaMapEditor" basedir=".">
     <!-- enter the SVN commit message -->
-    <property name="commit.message" value="some new internationalized messages"/>
+    <property name="commit.message" value="New release"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
     <property name="plugin.main.version" value="4549"/>
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 27460)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 27461)
@@ -39,5 +39,5 @@
 					} else {
 						node = null;
-						panelMain.mark.clearSign();
+						panelMain.mark.clrMark();
 						manager.showVisualMessage(Messages.getString("OneNode"));
 					}
@@ -46,5 +46,5 @@
 			if (nextNode == null) {
 				node = null;
-				panelMain.mark.clearSign();
+				panelMain.mark.clrMark();
 				manager.showVisualMessage(Messages.getString("SelectNode"));
 			}
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 27460)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java	(revision 27461)
@@ -38,6 +38,9 @@
 					if ((cat == Cat.INB_CALM) || (cat == Cat.INB_SBM)) {
 						dlg.panelMain.mark.setObject(Obj.BOYINB);
+						dlg.panelMain.mark.setShape(Shp.UNKSHP);
 					} else {
 						dlg.panelMain.mark.setObject(Obj.MORFAC);
+						if (cat != Cat.MOR_BUOY)
+							dlg.panelMain.mark.setShape(Shp.UNKSHP);
 					}
 				}
@@ -63,25 +66,27 @@
 	public ActionListener alShape = new ActionListener() {
 		public void actionPerformed(java.awt.event.ActionEvent e) {
-			for (Shp shp : shapes.keySet()) {
-				JRadioButton button = shapes.get(shp);
-				if (button.isSelected()) {
-					dlg.panelMain.mark.setShape(shp);
-					if (SeaMark.EntMAP.get(dlg.panelMain.mark.getObject()) != Ent.MOORING) {
-						dlg.panelMain.mark.setObject(objects.get(shp));
-						if (dlg.panelMain.mark.getObjColour(0) == Col.UNKCOL) {
-							dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
-							dlg.panelMain.mark.setObjColour(Col.YELLOW);
+			if ((dlg.panelMain.mark.getObject() != Obj.MORFAC) || (dlg.panelMain.mark.getCategory() == Cat.MOR_BUOY)) {
+				for (Shp shp : shapes.keySet()) {
+					JRadioButton button = shapes.get(shp);
+					if (button.isSelected()) {
+						dlg.panelMain.mark.setShape(shp);
+						if (SeaMark.EntMAP.get(dlg.panelMain.mark.getObject()) != Ent.MOORING) {
+							dlg.panelMain.mark.setObject(objects.get(shp));
+							if (dlg.panelMain.mark.getObjColour(0) == Col.UNKCOL) {
+								dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
+								dlg.panelMain.mark.setObjColour(Col.YELLOW);
+							}
+							if (button == cairnButton) {
+								dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
+								dlg.panelMain.mark.setObjColour(Col.UNKCOL);
+							}
+							topmarkButton.setVisible(dlg.panelMain.mark.testValid());
 						}
-						if (button == cairnButton) {
-							dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
-							dlg.panelMain.mark.setObjColour(Col.UNKCOL);
-						}
-						topmarkButton.setVisible(dlg.panelMain.mark.testValid());
-					}
-					button.setBorderPainted(true);
-				} else
-					button.setBorderPainted(false);
-			}
-			dlg.panelMain.panelMore.syncPanel();
+						button.setBorderPainted(true);
+					} else
+						button.setBorderPainted(false);
+				}
+				dlg.panelMain.panelMore.syncPanel();
+			}
 		}
 	};
@@ -110,12 +115,26 @@
 			dlg.panelMain.mark.setTopmark(Top.NOTOP);
 			if (mooringButton.isSelected()) {
+				dlg.panelMain.mark.setObject(Obj.MORFAC);
 				categoryBox.setVisible(false);
 				mooringBox.setVisible(true);
+				pillarButton.setEnabled(false);
+				sparButton.setEnabled(false);
+				beaconButton.setEnabled(false);
+				towerButton.setEnabled(false);
+				stakeButton.setEnabled(false);
+				cairnButton.setEnabled(false);
 				mooringButton.setBorderPainted(true);
 			} else {
 				mooringBox.setVisible(false);
 				categoryBox.setVisible(true);
+				pillarButton.setEnabled(true);
+				sparButton.setEnabled(true);
+				beaconButton.setEnabled(true);
+				towerButton.setEnabled(true);
+				stakeButton.setEnabled(true);
+				cairnButton.setEnabled(true);
 				mooringButton.setBorderPainted(false);
 			}
+			syncPanel();
 		}
 	};
@@ -199,4 +218,10 @@
 			categoryBox.setVisible(false);
 			mooringBox.setVisible(true);
+			pillarButton.setEnabled(false);
+			sparButton.setEnabled(false);
+			beaconButton.setEnabled(false);
+			towerButton.setEnabled(false);
+			stakeButton.setEnabled(false);
+			cairnButton.setEnabled(false);
 			topmarkButton.setVisible(false);
 			for (Cat cat : moorings.keySet()) {
@@ -209,4 +234,10 @@
 			mooringBox.setVisible(false);
 			categoryBox.setVisible(true);
+			pillarButton.setEnabled(true);
+			sparButton.setEnabled(true);
+			beaconButton.setEnabled(true);
+			towerButton.setEnabled(true);
+			stakeButton.setEnabled(true);
+			cairnButton.setEnabled(true);
 			topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
 			topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
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 27460)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 27461)
@@ -120,17 +120,4 @@
 			setColour(Ent.TOPMARK, Col.UNKCOL);
 			setPattern(Ent.TOPMARK, Pat.NOPAT);
-			setFogSound(Fog.NOFOG);
-			setRadar(Rtb.NORTB);
-			setStatus(Sts.UNKSTS);
-			setConstr(Cns.UNKCNS);
-			setConsp(Con.UNKCON);
-			setRefl(Con.UNKCON);
-			setRef("");
-			setObjectHeight("");
-			setElevation("");
-			setChannel("");
-			setInfo("");
-			setSource("");
-			setFixme("");
 		}
 		repaint();
@@ -1236,8 +1223,21 @@
 	}
 
-	public void clearSign() {
+	public void clrMark() {
+		setName("");
 		setObject(Obj.UNKOBJ);
-		setName("");
 		clrLight();
+		setFogSound(Fog.NOFOG);
+		setRadar(Rtb.NORTB);
+		setStatus(Sts.UNKSTS);
+		setConstr(Cns.UNKCNS);
+		setConsp(Con.UNKCON);
+		setRefl(Con.UNKCON);
+		setRef("");
+		setObjectHeight("");
+		setElevation("");
+		setChannel("");
+		setInfo("");
+		setSource("");
+		setFixme("");
 		dlg.panelMain.syncPanel();
 		repaint();
@@ -1282,5 +1282,5 @@
 			str = keys.get("seamark:type");
 
-		setObject(Obj.UNKOBJ);
+		clrMark();
 		for (Obj obj : ObjSTR.keySet()) {
 			if (ObjSTR.get(obj).equals(str)) {
@@ -2134,8 +2134,4 @@
 				case BARREL:
 					imgStr += "_Buoy_Small";
-					break;
-				case PILLAR:
-				case SPAR:
-					imgStr += "_Buoy";
 					break;
 				case FLOAT:
