Index: /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23071)
+++ /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 23072)
@@ -116,9 +116,9 @@
 	public JRadioButton rbM01RegionA = null;
 	public JRadioButton rbM01RegionB = null;
-	public JLabel lM01Icon = null;	// Shape
-	public JLabel lM02Icon = null;	// Light
-	public JLabel lM03Icon = null;	// Reflector
-	public JLabel lM04Icon = null;	// Racon
-	public JLabel lM05Icon = null;	// Fog
+	public JLabel lM01Icon = null; // Shape
+	public JLabel lM02Icon = null; // Light
+	public JLabel lM03Icon = null; // Reflector
+	public JLabel lM04Icon = null; // Racon
+	public JLabel lM05Icon = null; // Fog
 	public JLabel lM01FireMark = null;
 	private JLabel lM01TypeOfMark = null;
@@ -172,5 +172,5 @@
 
 	public boolean paintlock = false;
-	
+
 	public JMenuItem getSmpItem() {
 		return SmpItem;
@@ -1023,5 +1023,5 @@
 				public void actionPerformed(ActionEvent e) {
 					int rac = cbM01Racon.getSelectedIndex();
-					buoy.setRatyp(rac);
+					buoy.setRaType(rac);
 					buoy.paintSign();
 				}
@@ -1037,5 +1037,5 @@
 			tfM01Racon.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01Racon.getText());
+					buoy.setRaconGroup(tfM01Racon.getText());
 				}
 			});
@@ -1065,7 +1065,20 @@
 			cbM01Fog.setBounds(new Rectangle(100, 220, 70, 20));
 			cbM01Fog.setFont(new Font("Dialog", Font.PLAIN, 12)); //$NON-NLS-1$
+			cbM01Fog.removeAllItems();
+			cbM01Fog.addItem("Not Set");
+			cbM01Fog.addItem("Horn");
+			cbM01Fog.addItem("Siren");
+			cbM01Fog.addItem("Dia");
+			cbM01Fog.addItem("Bell");
+			cbM01Fog.addItem("Whis");
+			cbM01Fog.addItem("Gong");
+			cbM01Fog.addItem("Explos");
 			cbM01Fog.addActionListener(new ActionListener() {
 				public void actionPerformed(ActionEvent e) {
-					int fog = cbM01Fog.getSelectedIndex();
+					if (cbM01Fog.getSelectedIndex() > 0)
+						buoy.setFogSound((String) cbM01Fog.getSelectedItem());
+					else
+						buoy.setFogSound("");
+					buoy.paintSign();
 				}
 			});
@@ -1080,5 +1093,5 @@
 			tfM01FogGroup.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01FogGroup.getText());
+					buoy.setFogGroup(tfM01FogGroup.getText());
 				}
 			});
@@ -1093,5 +1106,5 @@
 			tfM01FogPeriod.addFocusListener(new FocusAdapter() {
 				public void focusLost(FocusEvent e) {
-					buoy.setName(tfM01FogPeriod.getText());
+					buoy.setFogPeriod(tfM01FogPeriod.getText());
 				}
 			});
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23071)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 23072)
@@ -77,14 +77,24 @@
 	}
 
-	private int Ratyp = 0;
-	
-	public int getRatyp() {
-		return Ratyp;
-	}
-	
-	public void setRatyp(int typ) {
-		Ratyp = typ;
-	}
-	
+	private int RaType = 0;
+
+	public int getRaType() {
+		return RaType;
+	}
+
+	public void setRaType(int type) {
+		RaType = type;
+	}
+
+	private String RaconGroup = "";
+
+	public String getRaconGroup() {
+		return RaconGroup;
+	}
+
+	public void setRaconGroup(String raconGroup) {
+		RaconGroup = raconGroup;
+	}
+
 	private boolean Fog = false;
 
@@ -95,4 +105,34 @@
 	public void setFog(boolean fog) {
 		Fog = fog;
+	}
+
+	private String FogSound = "";
+
+	public String getFogSound() {
+		return FogSound;
+	}
+
+	public void setFogSound(String fogSound) {
+		FogSound = fogSound;
+	}
+
+	private String FogGroup = "";
+
+	public String getFogGroup() {
+		return FogGroup;
+	}
+
+	public void setFogGroup(String fogGroup) {
+		FogSound = fogGroup;
+	}
+
+	private String FogPeriod = "";
+
+	public String getFogPeriod() {
+		return FogPeriod;
+	}
+
+	public void setFogPeriod(String fogPeriod) {
+		FogPeriod = fogPeriod;
 	}
 
@@ -254,5 +294,6 @@
 	public void paintSign() {
 
-		if (dlg.paintlock) return;
+		if (dlg.paintlock)
+			return;
 		dlg.lM01Icon.setIcon(null);
 		dlg.lM02Icon.setIcon(null);
@@ -260,5 +301,5 @@
 		dlg.lM04Icon.setIcon(null);
 		dlg.lM05Icon.setIcon(null);
-		
+
 		dlg.rbM01RegionA.setSelected(!getRegion());
 		dlg.rbM01RegionB.setSelected(getRegion());
@@ -270,13 +311,15 @@
 
 		dlg.tfM01Name.setText(getName());
-		
+
 		if (hasRadar()) {
-			dlg.lM03Icon.setIcon(new ImageIcon(getClass().getResource("/images/Radar_Reflector.png")));
-		}
-		
+			dlg.lM03Icon.setIcon(new ImageIcon(getClass().getResource(
+					"/images/Radar_Reflector.png")));
+		}
+
 		if (hasRacon()) {
-			dlg.lM04Icon.setIcon(new ImageIcon(getClass().getResource("/images/Radar_Station.png")));
+			dlg.lM04Icon.setIcon(new ImageIcon(getClass().getResource(
+					"/images/Radar_Station.png")));
 			dlg.cbM01Racon.setVisible(true);
-			if (getRatyp() == RATYP_RACON) {
+			if (getRaType() == RATYP_RACON) {
 				dlg.lM01Racon.setVisible(true);
 				dlg.tfM01Racon.setVisible(true);
@@ -291,9 +334,28 @@
 			dlg.tfM01Racon.setVisible(false);
 		}
-		
+
 		if (hasFog()) {
-			dlg.lM05Icon.setIcon(new ImageIcon(getClass().getResource("/images/Fog_Signal.png")));
-		}
-		
+			dlg.lM05Icon.setIcon(new ImageIcon(getClass().getResource(
+					"/images/Fog_Signal.png")));
+			dlg.cbM01Fog.setVisible(true);
+			if (getFogSound().equals("")) {
+				dlg.lM01FogGroup.setVisible(false);
+				dlg.tfM01FogGroup.setVisible(false);
+				dlg.lM01FogPeriod.setVisible(false);
+				dlg.tfM01FogPeriod.setVisible(false);
+			} else {
+				dlg.lM01FogGroup.setVisible(true);
+				dlg.tfM01FogGroup.setVisible(true);
+				dlg.lM01FogPeriod.setVisible(true);
+				dlg.tfM01FogPeriod.setVisible(true);
+			}
+		} else {
+			dlg.cbM01Fog.setVisible(false);
+			dlg.lM01FogGroup.setVisible(false);
+			dlg.tfM01FogGroup.setVisible(false);
+			dlg.lM01FogPeriod.setVisible(false);
+			dlg.tfM01FogPeriod.setVisible(false);
+		}
+
 		if (isFired()) {
 			String lp, c;
@@ -303,12 +365,16 @@
 			String col = getLightColour();
 			if (col.equals("W"))
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_120.png")));
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_White_120.png")));
 			else if (col.equals("R"))
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Red_120.png")));
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_Red_120.png")));
 			else if (col.equals("G"))
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Green_120.png")));
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_Green_120.png")));
 			else
-				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Magenta_120.png")));
-	
+				dlg.lM02Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_Magenta_120.png")));
+
 			dlg.cbM01Kennung.setEnabled(true);
 
@@ -437,9 +503,9 @@
 		dlg.lM01Racon.setVisible(false);
 		setRacon(false);
-		setRatyp(0);
+		setRaType(0);
 		dlg.cM01Fog.setSelected(false);
 		dlg.cM01Fog.setVisible(false);
-		dlg.cbM01Fog.removeAllItems();
 		dlg.cbM01Fog.setVisible(false);
+		setFogSound("");
 		dlg.tfM01FogGroup.setText("");
 		dlg.tfM01FogGroup.setVisible(false);
