Index: applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22814)
+++ applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22816)
@@ -169,5 +169,9 @@
 
 		dia = this;
-
+		String str = Main.pref.get("mappaint.style.sources");
+		if (!str.contains("dev.openseamap.org")) {
+			if (!str.equals("")) str += new String(new char[] {0x1e});
+			Main.pref.put("mappaint.style.sources", str + "http://dev.openseamap.org/josm/seamark_styles.xml");
+		}
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java	(revision 22814)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/SeaMark.java	(revision 22816)
@@ -92,4 +92,5 @@
 	public final static int SPEC_FLOAT = 5;
 	public final static int SPEC_BEACON = 6;
+	public final static int SPEC_TOWER = 7;
 	public final static int LIGHT_HOUSE = 1;
 	public final static int LIGHT_MAJOR = 2;
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22814)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22816)
@@ -32,4 +32,5 @@
 		dlg.cbM01StyleOfMark.addItem("Float");
 		dlg.cbM01StyleOfMark.addItem("Beacon");
+		dlg.cbM01StyleOfMark.addItem("Tower");
 
 		dlg.cbM01Kennung.removeAllItems();
@@ -85,7 +86,11 @@
 				"beacon_special_purpose"))
 				|| keys.containsKey("seamark:special_purpose_beacon:colour")
-				|| keys.containsKey("seamark:special_purpose_beacon:shape"))
-			setStyleIndex(SPEC_BEACON);
-		else if (keys.containsKey("seamark:light_float:colour")
+				|| keys.containsKey("seamark:special_purpose_beacon:shape")) {
+			if (keys.containsKey("seamark:special_purpose_beacon:shape")
+					&& keys.get("seamark:soecial_purpose_beacon:shape").equals("tower"))
+				setStyleIndex(SPEC_TOWER);
+			else
+				setStyleIndex(SPEC_BEACON);
+		} else if (keys.containsKey("seamark:light_float:colour")
 				&& keys.get("seamark:light_float:colour").equals("yellow"))
 			setStyleIndex(SPEC_FLOAT);
@@ -163,4 +168,7 @@
 			image += "_Beacon";
 			break;
+		case SPEC_TOWER:
+			image += "_Tower";
+			break;
 		default:
 		}
@@ -236,4 +244,11 @@
 					"seamark:beacon_special_purpose:colour", "yellow"));
 			break;
+		case SPEC_TOWER:
+			super.saveSign("beacon_special_purpose");
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_special_purpose:shape", "tower"));
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_special_purpose:colour", "yellow"));
+			break;
 		default:
 		}
