Index: applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22724)
+++ applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22725)
@@ -569,4 +569,6 @@
 					if (n == null)
 						n = onode;
+					if (n == null)
+						return;
 					name = buoy.getName();
 					switch (type) {
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22724)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22725)
@@ -48,4 +48,6 @@
 		dlg.cM01Fired.setSelected(false);
 		dlg.cM01TopMark.setSelected(false);
+		dlg.cM01Fired.setEnabled(false);
+		dlg.cM01TopMark.setEnabled(false);
 		dlg.tbM01Region.setEnabled(false);
 
@@ -106,4 +108,17 @@
 	}
 
+	public void setStyleIndex(int styleIndex) {
+		super.setStyleIndex(styleIndex);
+		if (styleIndex == SPEC_BARREL) {
+			dlg.cM01Fired.setSelected(false);
+			dlg.cM01TopMark.setSelected(false);
+			dlg.cM01Fired.setEnabled(false);
+			dlg.cM01TopMark.setEnabled(false);
+		} else {
+			dlg.cM01Fired.setEnabled(true);
+			dlg.cM01TopMark.setEnabled(true);
+		}
+	}
+
 	public void paintSign() {
 		super.paintSign();
@@ -113,6 +128,4 @@
 		dlg.tfM01Name.setEnabled(true);
 		dlg.tfM01Name.setText(getName());
-		dlg.cM01Fired.setEnabled(true);
-		dlg.cM01TopMark.setEnabled(true);
 
 		String image = "/images/Special_Purpose";
