Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages.properties
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages.properties	(revision 27443)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages.properties	(revision 27445)
@@ -303,10 +303,40 @@
 CoastguardStation=Coastguard Station
 PilotBoarding=Pilot Boarding
-CruisingVessel=Cruising Vessel
+CruisingVessel=Cruising vessel
 Helicopter=Helicopter
-FromShore=From Shore
+FromShore=From shore
 RescueStation=Rescue Station
+Lifeboat=Lifeboat
+Rocket=Rocket
+ShipwreckedRefuge=Shipwrecked refuge
+IntertidalRefuge=Intertidal refuge
+MooredLifeboat=Moored lifeboat
+Radio=Radio
+FirstAid=First Aid
+Seaplane=Seaplane
+Aircraft=Aircraft
+Tug=Tug
 RadioStation=Radio Station
+CircularBeacon=Circular beacon
+DirectionalBeacon=Directional beacon
+RotatingBeacon=Rotating beacon
+ConsolBeacon=Consol beacon
+DirectionFinding=Direction finding
+QTGService=QTG service
+AeronaticalBeacon=Aeronautical beacon
+Decca=Decca
+LoranC=Loran C
+DGPS=DGPS
+Toran=Toran
+Omega=Omega
+Syledis=Syledis
+Chiaka=Chiaka
+PublicCommunication=Public communication
+CommercialBroadcast=Commercial broadcast
+Facsimile=Facsimile
+TimeSignal=Time signal
 RadarStation=Radar Station
+Surveillance=Surveillance
+CoastRadar=Coast radar
 
 NotDecimal=Not a valid decimal string
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_de.properties
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_de.properties	(revision 27443)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_de.properties	(revision 27445)
@@ -301,4 +301,43 @@
 SBM=SBM Buoy
 
+CoastguardStation=Coastguard Station
+PilotBoarding=Pilot Boarding
+CruisingVessel=Cruising vessel
+Helicopter=Helicopter
+FromShore=From shore
+RescueStation=Rescue Station
+Lifeboat=Lifeboat
+Rocket=Rocket
+ShipwreckedRefuge=Shipwrecked refuge
+IntertidalRefuge=Intertidal refuge
+MooredLifeboat=Moored lifeboat
+Radio=Radio
+FirstAid=First Aid
+Seaplane=Seaplane
+Aircraft=Aircraft
+Tug=Tug
+RadioStation=Radio Station
+CircularBeacon=Circular beacon
+DirectionalBeacon=Directional beacon
+RotatingBeacon=Rotating beacon
+ConsolBeacon=Consol beacon
+DirectionFinding=Direction finding
+QTGService=QTG service
+AeronaticalBeacon=Aeronautical beacon
+Decca=Decca
+LoranC=Loran C
+DGPS=DGPS
+Toran=Toran
+Omega=Omega
+Syledis=Syledis
+Chiaka=Chiaka
+PublicCommunication=Public communication
+CommercialBroadcast=Commercial broadcast
+Facsimile=Facsimile
+TimeSignal=Time signal
+RadarStation=Radar Station
+Surveillance=Surveillance
+CoastRadar=Coast radar
+
 NotDecimal=Kein korrekter Dezimalwert
 TooBig=Maximaler Wert überschritten
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_en.properties
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_en.properties	(revision 27443)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/msg/messages_en.properties	(revision 27445)
@@ -301,4 +301,43 @@
 SBM=SBM Buoy
 
+CoastguardStation=Coastguard Station
+PilotBoarding=Pilot Boarding
+CruisingVessel=Cruising vessel
+Helicopter=Helicopter
+FromShore=From shore
+RescueStation=Rescue Station
+Lifeboat=Lifeboat
+Rocket=Rocket
+ShipwreckedRefuge=Shipwrecked refuge
+IntertidalRefuge=Intertidal refuge
+MooredLifeboat=Moored lifeboat
+Radio=Radio
+FirstAid=First Aid
+Seaplane=Seaplane
+Aircraft=Aircraft
+Tug=Tug
+RadioStation=Radio Station
+CircularBeacon=Circular beacon
+DirectionalBeacon=Directional beacon
+RotatingBeacon=Rotating beacon
+ConsolBeacon=Consol beacon
+DirectionFinding=Direction finding
+QTGService=QTG service
+AeronaticalBeacon=Aeronautical beacon
+Decca=Decca
+LoranC=Loran C
+DGPS=DGPS
+Toran=Toran
+Omega=Omega
+Syledis=Syledis
+Chiaka=Chiaka
+PublicCommunication=Public communication
+CommercialBroadcast=Commercial broadcast
+Facsimile=Facsimile
+TimeSignal=Time signal
+RadarStation=Radar Station
+Surveillance=Surveillance
+CoastRadar=Coast radar
+
 NotDecimal=Not a valid decimal string
 TooBig=Maximum value exceeded
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 27443)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java	(revision 27445)
@@ -90,4 +90,30 @@
 				int idx = rescueCats.get(cat);
 				if (dlg.node != null && (idx == rescueCatBox.getSelectedIndex())) {
+					dlg.panelMain.mark.setCategory(cat);
+					dlg.panelMain.mark.testValid();
+				}
+			}
+		}
+	};
+	public JComboBox radioCatBox;
+	public EnumMap<Cat, Integer> radioCats = new EnumMap<Cat, Integer>(Cat.class);
+	private ActionListener alRadioCatBox = new ActionListener() {
+		public void actionPerformed(java.awt.event.ActionEvent e) {
+			for (Cat cat : radioCats.keySet()) {
+				int idx = radioCats.get(cat);
+				if (dlg.node != null && (idx == radioCatBox.getSelectedIndex())) {
+					dlg.panelMain.mark.setCategory(cat);
+					dlg.panelMain.mark.testValid();
+				}
+			}
+		}
+	};
+	public JComboBox radarCatBox;
+	public EnumMap<Cat, Integer> radarCats = new EnumMap<Cat, Integer>(Cat.class);
+	private ActionListener alRadarCatBox = new ActionListener() {
+		public void actionPerformed(java.awt.event.ActionEvent e) {
+			for (Cat cat : radarCats.keySet()) {
+				int idx = radarCats.get(cat);
+				if (dlg.node != null && (idx == radarCatBox.getSelectedIndex())) {
 					dlg.panelMain.mark.setCategory(cat);
 					dlg.panelMain.mark.testValid();
@@ -134,4 +160,8 @@
 			pilotCatBox.setVisible(false);
 			rescueCatBox.setVisible(false);
+			radioCatBox.setVisible(false);
+			radarCatBox.setVisible(false);
+			chLabel.setVisible(false);
+			chBox.setVisible(false);
 			dlg.panelMain.mark.setCategory(Cat.NOCAT);
 			if (landButton.isSelected()) {
@@ -142,8 +172,12 @@
 				categoryLabel.setVisible(true);
 				trafficCatBox.setVisible(true);
+				chLabel.setVisible(true);
+				chBox.setVisible(true);
 				alTrafficCatBox.actionPerformed(null);
 			} else if (warningButton.isSelected()) {
 				categoryLabel.setVisible(true);
 				warningCatBox.setVisible(true);
+				chLabel.setVisible(true);
+				chBox.setVisible(true);
 				alWarningCatBox.actionPerformed(null);
 			} else if (platformButton.isSelected()) {
@@ -154,4 +188,6 @@
 				categoryLabel.setVisible(true);
 				pilotCatBox.setVisible(true);
+				chLabel.setVisible(true);
+				chBox.setVisible(true);
 				alPilotCatBox.actionPerformed(null);
 			} else if (rescueButton.isSelected()) {
@@ -159,6 +195,25 @@
 				rescueCatBox.setVisible(true);
 				alRescueCatBox.actionPerformed(null);
+			} else if (radioButton.isSelected()) {
+				categoryLabel.setVisible(true);
+				radioCatBox.setVisible(true);
+				chLabel.setVisible(true);
+				chBox.setVisible(true);
+				alRadioCatBox.actionPerformed(null);
+			} else if (radarButton.isSelected()) {
+				categoryLabel.setVisible(true);
+				radarCatBox.setVisible(true);
+				chLabel.setVisible(true);
+				chBox.setVisible(true);
+				alRadarCatBox.actionPerformed(null);
 			}
 			dlg.panelMain.mark.testValid();
+		}
+	};
+	public JLabel chLabel;
+	public JTextField chBox;
+	private FocusListener flCh = new FocusAdapter() {
+		public void focusLost(java.awt.event.FocusEvent e) {
+			dlg.panelMain.mark.setChannel(chBox.getText());
 		}
 	};
@@ -285,5 +340,57 @@
 		addRSItem("", Cat.NOCAT);
 		addRSItem(Messages.getString("Lifeboat"), Cat.RSC_LFB);
+		addRSItem(Messages.getString("Rocket"), Cat.RSC_RKT);
+		addRSItem(Messages.getString("ShipwreckedRefuge"), Cat.RSC_RSW);
+		addRSItem(Messages.getString("IntertidalRefuge"), Cat.RSC_RIT);
+		addRSItem(Messages.getString("MooredLifeboat"), Cat.RSC_MLB);
+		addRSItem(Messages.getString("Radio"), Cat.RSC_RAD);
+		addRSItem(Messages.getString("FirstAid"), Cat.RSC_FAE);
+		addRSItem(Messages.getString("Seaplane"), Cat.RSC_SPL);
+		addRSItem(Messages.getString("Aircraft"), Cat.RSC_AIR);
+		addRSItem(Messages.getString("Tug"), Cat.RSC_TUG);
 		rescueCatBox.setVisible(false);
+
+		radioCatBox = new JComboBox();
+		radioCatBox.setBounds(new Rectangle(5, 130, 160, 20));
+		add(radioCatBox);
+		radioCatBox.addActionListener(alRadioCatBox);
+		addROItem("", Cat.NOCAT);
+		addROItem(Messages.getString("CircularBeacon"), Cat.ROS_BNO);
+		addROItem(Messages.getString("DirectionalBeacon"), Cat.ROS_BND);
+		addROItem(Messages.getString("RotatingBeacon"), Cat.ROS_BNR);
+		addROItem(Messages.getString("ConsolBeacon"), Cat.ROS_BNC);
+		addROItem(Messages.getString("DirectionFinding"), Cat.ROS_RDF);
+		addROItem(Messages.getString("QTGService"), Cat.ROS_QTG);
+		addROItem(Messages.getString("AeronaticalBeacon"), Cat.ROS_AER);
+		addROItem(Messages.getString("Decca"), Cat.ROS_DCA);
+		addROItem(Messages.getString("LoranC"), Cat.ROS_LRN);
+		addROItem(Messages.getString("DGPS"), Cat.ROS_DGPS);
+		addROItem(Messages.getString("Toran"), Cat.ROS_TRN);
+		addROItem(Messages.getString("Omega"), Cat.ROS_OMA);
+		addROItem(Messages.getString("Syledis"), Cat.ROS_SDS);
+		addROItem(Messages.getString("Chiaka"), Cat.ROS_CKA);
+		addROItem(Messages.getString("PublicCommunication"), Cat.ROS_PUB);
+		addROItem(Messages.getString("CommercialBroadcast"), Cat.ROS_COM);
+		addROItem(Messages.getString("Facsimile"), Cat.ROS_FAX);
+		addROItem(Messages.getString("TimeSignal"), Cat.ROS_TIM);
+		radioCatBox.setVisible(false);
+
+		radarCatBox = new JComboBox();
+		radarCatBox.setBounds(new Rectangle(5, 130, 160, 20));
+		add(radarCatBox);
+		radarCatBox.addActionListener(alRadarCatBox);
+		addRAItem("", Cat.NOCAT);
+		addRAItem(Messages.getString("Surveillance"), Cat.RAS_SRV);
+		addRAItem(Messages.getString("CoastRadar"), Cat.RAS_CST);
+		radarCatBox.setVisible(false);
+
+		chLabel = new JLabel("Ch:", SwingConstants.CENTER);
+		chLabel.setBounds(new Rectangle(140, 34, 30, 15));
+		add(chLabel);
+		chBox = new JTextField();
+		chBox.setBounds(new Rectangle(140, 48, 30, 20));
+		chBox.setHorizontalAlignment(SwingConstants.CENTER);
+		add(chBox);
+		chBox.addFocusListener(flCh);
 	}
 
@@ -296,4 +403,9 @@
 		pilotCatBox.setVisible(false);
 		rescueCatBox.setVisible(false);
+		radioCatBox.setVisible(false);
+		radarCatBox.setVisible(false);
+		chLabel.setVisible(false);
+		chBox.setVisible(false);
+		chBox.setText(dlg.panelMain.mark.getChannel());
 		if ((dlg.panelMain.mark.getObject() == Obj.LNDMRK) && (dlg.panelMain.mark.getCategory() != Cat.NOCAT)) {
 			categoryLabel.setVisible(true);
@@ -312,4 +424,6 @@
 						trafficCatBox.setSelectedIndex(item);
 				}
+				chLabel.setVisible(true);
+				chBox.setVisible(true);
 		} else if (dlg.panelMain.mark.getObject() == Obj.SISTAW) {
 			categoryLabel.setVisible(true);
@@ -320,4 +434,6 @@
 					warningCatBox.setSelectedIndex(item);
 			}
+			chLabel.setVisible(true);
+			chBox.setVisible(true);
 		} else if (dlg.panelMain.mark.getObject() == Obj.OFSPLF) {
 			categoryLabel.setVisible(true);
@@ -336,4 +452,6 @@
 					pilotCatBox.setSelectedIndex(item);
 			}
+			chLabel.setVisible(true);
+			chBox.setVisible(true);
 		} else if (dlg.panelMain.mark.getObject() == Obj.RSCSTA) {
 			categoryLabel.setVisible(true);
@@ -344,4 +462,24 @@
 					rescueCatBox.setSelectedIndex(item);
 			}
+		} else if (dlg.panelMain.mark.getObject() == Obj.RDOSTA) {
+			categoryLabel.setVisible(true);
+			radioCatBox.setVisible(true);
+			for (Cat cat : radioCats.keySet()) {
+				int item = radioCats.get(cat);
+				if (dlg.panelMain.mark.getCategory() == cat)
+					radioCatBox.setSelectedIndex(item);
+			}
+			chLabel.setVisible(true);
+			chBox.setVisible(true);
+		} else if (dlg.panelMain.mark.getObject() == Obj.RADSTA) {
+			categoryLabel.setVisible(true);
+			radarCatBox.setVisible(true);
+			for (Cat cat : radarCats.keySet()) {
+				int item = radarCats.get(cat);
+				if (dlg.panelMain.mark.getCategory() == cat)
+					radarCatBox.setSelectedIndex(item);
+			}
+			chLabel.setVisible(true);
+			chBox.setVisible(true);
 		}
 		for (Obj obj : objects.keySet()) {
@@ -380,4 +518,14 @@
 		rescueCats.put(cat, rescueCatBox.getItemCount());
 		rescueCatBox.addItem(str);
+	}
+
+	private void addROItem(String str, Cat cat) {
+		radioCats.put(cat, radioCatBox.getItemCount());
+		radioCatBox.addItem(str);
+	}
+
+	private void addRAItem(String str, Cat cat) {
+		radarCats.put(cat, radarCatBox.getItemCount());
+		radarCatBox.addItem(str);
 	}
 
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 27443)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 27445)
@@ -129,4 +129,5 @@
 			setObjectHeight("");
 			setElevation("");
+			setChannel("");
 			setInfo("");
 			setSource("");
@@ -171,4 +172,6 @@
 		EntMAP.put(Obj.PILBOP, Ent.STATION);
 		EntMAP.put(Obj.RSCSTA, Ent.STATION);
+		EntMAP.put(Obj.RDOSTA, Ent.STATION);
+		EntMAP.put(Obj.RADSTA, Ent.STATION);
 	}
 
@@ -209,4 +212,6 @@
 		GrpMAP.put(Obj.PILBOP, Grp.STN);
 		GrpMAP.put(Obj.RSCSTA, Grp.STN);
+		GrpMAP.put(Obj.RDOSTA, Grp.STN);
+		GrpMAP.put(Obj.RADSTA, Grp.STN);
 	}
 
@@ -223,5 +228,7 @@
 		LMK_MAST, LMK_WNDS, LMK_CLMN, LMK_OBLK, LMK_STAT, LMK_CROS, LMK_DOME, LMK_SCNR, LMK_WNDL, LMK_SPIR,
 		OFP_OIL, OFP_PRD, OFP_OBS, OFP_ALP, OFP_SALM, OFP_MOR, OFP_ISL, OFP_FPSO, OFP_ACC, OFP_NCCB,
-		PIL_VESS, PIL_HELI, PIL_SHORE, RSC_LFB, RSC_RKT, RSC_RSW, RSC_RIT, RSC_MLB, RSC_RAD, RSC_FAE, RSC_SPL, RSC_AIR, RSC_TUG
+		RSC_LFB, RSC_RKT, RSC_RSW, RSC_RIT, RSC_MLB, RSC_RAD, RSC_FAE, RSC_SPL, RSC_AIR, RSC_TUG,
+		ROS_BNO, ROS_BND, ROS_BNR, ROS_BNC, ROS_RDF, ROS_QTG, ROS_AER, ROS_DCA, ROS_LRN, ROS_DGPS, ROS_TRN, ROS_OMA,
+		ROS_SDS, ROS_CKA, ROS_PUB, ROS_COM, ROS_FAX, ROS_TIM, RAS_SRV, RAS_CST, PIL_VESS, PIL_HELI, PIL_SHORE
 	}
 		 
@@ -331,4 +338,24 @@
 		CatSTR.put(Cat.RSC_AIR, "aircraft");
 		CatSTR.put(Cat.RSC_TUG, "tug");
+		CatSTR.put(Cat.RAS_SRV, "surveillance");
+		CatSTR.put(Cat.RAS_CST, "coast");
+		CatSTR.put(Cat.ROS_BNO, "beacon_circular");
+		CatSTR.put(Cat.ROS_BND, "beacon_directional");
+		CatSTR.put(Cat.ROS_BNR, "beacon_rotating");
+		CatSTR.put(Cat.ROS_BNC, "beacon_consol");
+		CatSTR.put(Cat.ROS_RDF, "direction_finding");
+		CatSTR.put(Cat.ROS_QTG, "qtg_service");
+		CatSTR.put(Cat.ROS_AER, "beacon_aero");
+		CatSTR.put(Cat.ROS_DCA, "decca");
+		CatSTR.put(Cat.ROS_LRN, "loran");
+		CatSTR.put(Cat.ROS_DGPS, "dgps");
+		CatSTR.put(Cat.ROS_TRN, "toran");
+		CatSTR.put(Cat.ROS_OMA, "omega");
+		CatSTR.put(Cat.ROS_SDS, "syledis");
+		CatSTR.put(Cat.ROS_CKA, "chiaka");
+		CatSTR.put(Cat.ROS_PUB, "public_communication");
+		CatSTR.put(Cat.ROS_COM, "comercial_broadcast");
+		CatSTR.put(Cat.ROS_FAX, "facsimile");
+		CatSTR.put(Cat.ROS_TIM, "time_signal");
 	}
 
@@ -1097,4 +1124,15 @@
 	public void setObjectHeight(String str) {
 		height = validDecimal(str);
+	}
+
+	private String channel = "";
+
+	public String getChannel() {
+		return channel;
+	}
+
+	public void setChannel(String per) {
+		channel = validDecimal(per);
+		repaint();
 	}
 
@@ -1169,4 +1207,6 @@
 		case PILBOP:
 		case RSCSTA:
+		case RDOSTA:
+		case RADSTA:
  			tmp = true;
 			break;
@@ -1344,4 +1384,7 @@
 			if (keys.containsKey("seamark:" + ObjSTR.get(obj) + ":elevation")) {
 				setElevation(keys.get("seamark:" + ObjSTR.get(obj) + ":elevation"));
+			}
+			if (keys.containsKey("seamark:" + ObjSTR.get(obj) + ":channel")) {
+				setChannel(keys.get("seamark:" + ObjSTR.get(obj) + ":channel"));
 			}
 		}
@@ -1959,4 +2002,9 @@
 				imgStr += "Rescue";
 				break;
+			case RDOSTA:
+			case RADSTA:
+				imgStr += "Signal_Station";
+				g2.drawImage(new ImageIcon(getClass().getResource("/images/Radar_Station.png")).getImage(), 7, -15, null);
+				break;
 			}
 			if (!imgStr.equals("/images/")) {
@@ -2369,4 +2417,7 @@
 				if (!getElevation().isEmpty()) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:" + objStr + ":elevation", getElevation()));
+				}
+				if (!getChannel().isEmpty()) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:" + objStr + ":channel", getChannel()));
 				}
 			}
