Index: applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22923)
@@ -19,5 +19,6 @@
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
-import javax.swing.JToggleButton;
+import javax.swing.JRadioButton;
+import javax.swing.ButtonGroup;
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
@@ -51,7 +52,4 @@
 
 public class SmpDialogAction extends JosmAction {
-	/**
-	 * 
-	 */
 	private static final long serialVersionUID = -2976230949744302905L;
 
@@ -115,5 +113,7 @@
 	public JLabel lM01Icon01 = null;
 	public JLabel lM01Icon02 = null;
-	public JToggleButton tbM01Region = null;
+	public ButtonGroup bgM01Region = null;
+	public JRadioButton rbM01RegionA = null;
+	public JRadioButton rbM01RegionB = null;
 	public JComboBox cbM01TypeOfMark = null;
 	public JComboBox cbM01StyleOfMark = null;
@@ -172,6 +172,8 @@
 		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");
+			if (!str.equals(""))
+				str += new String(new char[] { 0x1e });
+			Main.pref.put("mappaint.style.sources", str
+					+ "http://dev.openseamap.org/josm/seamark_styles.xml");
 		}
 		str = Main.pref.get("color.background");
@@ -183,5 +185,5 @@
 		onode = null;
 		DataSet.selListeners.remove(SmpListener);
-//		DataSet.removeSelectionListener(SmpListener);
+		// DataSet.removeSelectionListener(SmpListener);
 		Selection = null;
 
@@ -230,5 +232,5 @@
 		// Einhängen des Listeners in die Eventqueue von josm
 		DataSet.selListeners.add(SmpListener);
-//		DataSet.addSelectionListener(SmpListener);
+		// DataSet.addSelectionListener(SmpListener);
 	}
 
@@ -318,5 +320,4 @@
 				"/images/Auge.png")));
 
-		tbM01Region.setEnabled(true);
 		cbM01TypeOfMark.setEnabled(true);
 		cbM01StyleOfMark.setEnabled(true);
@@ -449,5 +450,5 @@
 					// Deaktivierung des Listeners
 					DataSet.selListeners.remove(SmpListener);
-//				DataSet.removeSelectionListener(SmpListener);
+					// DataSet.removeSelectionListener(SmpListener);
 					Selection = null;
 
@@ -523,4 +524,26 @@
 			lM01Icon02.setIcon(null);
 			lM01Icon02.setText("");
+
+			rbM01RegionA = new JRadioButton("A", Main.pref.get("tomsplugin.IALA")
+					.equals("A"));
+			rbM01RegionA.setBounds(new Rectangle(60, 55, 40, 30));
+			rbM01RegionB = new JRadioButton("B", Main.pref.get("tomsplugin.IALA")
+					.equals("B"));
+			rbM01RegionB.setBounds(new Rectangle(100, 55, 40, 30));
+			bgM01Region = new ButtonGroup();
+			bgM01Region.add(rbM01RegionA);
+			bgM01Region.add(rbM01RegionB);
+			
+			java.awt.event.ActionListener alM01Region = new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					if (buoy instanceof BuoyLat) {
+						buoy.setRegion(rbM01RegionB.isSelected());
+						buoy.setLightColour();
+						buoy.paintSign();
+					}
+				}
+			};
+			rbM01RegionA.addActionListener(alM01Region);
+			rbM01RegionB.addActionListener(alM01Region);
 
 			pM01SeaMap = new JPanel();
@@ -537,5 +560,7 @@
 			pM01SeaMap.add(lM01Icon01, null);
 			pM01SeaMap.add(lM01Icon02, null);
-			pM01SeaMap.add(getTbM01Region(), null);
+			pM01SeaMap.add(rbM01RegionA, null);
+			pM01SeaMap.add(rbM01RegionB, null);
+			// pM01SeaMap.add(getTbM01Region(), null);
 			pM01SeaMap.add(getCbM01TypeOfMark(), null);
 			pM01SeaMap.add(getCbM01StyleOfMark(), null);
@@ -653,36 +678,24 @@
 	}
 
-	private JToggleButton getTbM01Region() {
-		if (tbM01Region == null) {
-			tbM01Region = new JToggleButton();
-
-			tbM01Region.setBounds(new Rectangle(60, 55, 80, 25));
-			tbM01Region.setFont(new Font("Dialog", Font.PLAIN, 12));
-			tbM01Region.setEnabled(false);
-			if (Main.pref.get("tomsplugin.IALA").equals("B")) {
-				tbM01Region.setSelected(true);
-				tbM01Region.setText("IALA-B");
-			} else {
-				tbM01Region.setSelected(false);
-				tbM01Region.setText("IALA-A");
-			}
-
-			tbM01Region.addActionListener(new java.awt.event.ActionListener() {
-				public void actionPerformed(java.awt.event.ActionEvent e) {
-					if (tbM01Region.isSelected()) {
-						buoy.setRegion(true);
-						tbM01Region.setText("IALA-B");
-					} else {
-						buoy.setRegion(false);
-						tbM01Region.setText("IALA-A");
-					}
-					buoy.paintSign();
-				}
-			});
-		}
-
-		return tbM01Region;
-	}
-
+	/*
+	 * private JToggleButton getTbM01Region() { if (tbM01Region == null) {
+	 * tbM01Region = new JToggleButton();
+	 * 
+	 * tbM01Region.setBounds(new Rectangle(60, 55, 80, 25));
+	 * tbM01Region.setFont(new Font("Dialog", Font.PLAIN, 12));
+	 * tbM01Region.setEnabled(false); if
+	 * (Main.pref.get("tomsplugin.IALA").equals("B")) {
+	 * tbM01Region.setSelected(true); tbM01Region.setText("IALA-B"); } else {
+	 * tbM01Region.setSelected(false); tbM01Region.setText("IALA-A"); }
+	 * 
+	 * tbM01Region.addActionListener(new java.awt.event.ActionListener() { public
+	 * void actionPerformed(java.awt.event.ActionEvent e) { if
+	 * (tbM01Region.isSelected()) { buoy.setRegion(true);
+	 * tbM01Region.setText("IALA-B"); } else { buoy.setRegion(false);
+	 * tbM01Region.setText("IALA-A"); } buoy.paintSign(); } }); }
+	 * 
+	 * return tbM01Region; }
+	 */
+	
 	private JComboBox getCbM01StyleOfMark() {
 		if (cbM01StyleOfMark == null) {
@@ -829,5 +842,5 @@
 					// Deaktivierung des Listeners
 					DataSet.selListeners.remove(SmpListener);
-//				DataSet.removeSelectionListener(SmpListener);
+					// DataSet.removeSelectionListener(SmpListener);
 					Selection = null;
 					SmpItem.setEnabled(true);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 22923)
@@ -55,6 +55,6 @@
 	public void setRegion(boolean region) {
 		Region = region;
-		dlg.tbM01Region.setSelected(region);
-		dlg.tbM01Region.setText(region ? "IALA-B" : "IALA-A");
+		dlg.rbM01RegionA.setSelected(!region);
+		dlg.rbM01RegionB.setSelected(region);
 	}
 
@@ -67,9 +67,4 @@
 	public void setFired(boolean fired) {
 		Fired = fired;
-		/*
-		 * if (dlg.cM01Fired == null) { return; }
-		 */
-		dlg.cM01Fired.setSelected(fired);
-
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 22923)
@@ -35,5 +35,4 @@
 		dlg.cM01Fired.setSelected(false);
 		dlg.cM01TopMark.setSelected(false);
-		dlg.tbM01Region.setEnabled(false);
 
 		setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 22923)
@@ -39,5 +39,4 @@
 		dlg.cM01TopMark.setSelected(true);
 		dlg.cM01TopMark.setEnabled(false);
-		dlg.tbM01Region.setEnabled(false);
 
 		setColour(SeaMark.BLACK_RED_BLACK);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 22923)
@@ -45,5 +45,4 @@
 		dlg.cM01Fired.setSelected(false);
 		dlg.cM01TopMark.setSelected(false);
-		dlg.tbM01Region.setEnabled(true);
 
 		if (keys.containsKey("name"))
@@ -149,14 +148,14 @@
 
 			if (col.equals("red")) {
-				setRegion(SeaMark.IALA_A);
-				setColour(SeaMark.RED);
+				setRegion(IALA_A);
+				setColour(RED);
 			} else if (col.equals("green")) {
-				setRegion(SeaMark.IALA_B);
-				setColour(SeaMark.GREEN);
+				setRegion(IALA_B);
+				setColour(GREEN);
 			} else {
 				if (getRegion() == IALA_A)
-					setColour(SeaMark.RED);
+					setColour(RED);
 				else
-					setColour(SeaMark.GREEN);
+					setColour(GREEN);
 			}
 		} else if (cat.equals("starboard")) {
@@ -165,14 +164,14 @@
 
 			if (col.equals("green")) {
-				setRegion(SeaMark.IALA_A);
-				setColour(SeaMark.GREEN);
+				setRegion(IALA_A);
+				setColour(GREEN);
 			} else if (col.equals("red")) {
-				setRegion(SeaMark.IALA_B);
-				setColour(SeaMark.RED);
+				setRegion(IALA_B);
+				setColour(RED);
 			} else {
 				if (getRegion() == IALA_A)
-					setColour(SeaMark.GREEN);
+					setColour(GREEN);
 				else
-					setColour(SeaMark.RED);
+					setColour(RED);
 			}
 		} else if (cat.equals("preferred_channel_port")) {
@@ -181,14 +180,14 @@
 
 			if (col.equals("red;green;red")) {
-				setRegion(SeaMark.IALA_A);
-				setColour(SeaMark.RED_GREEN_RED);
+				setRegion(IALA_A);
+				setColour(RED_GREEN_RED);
 			} else if (col.equals("green;red;green")) {
-				setRegion(SeaMark.IALA_B);
-				setColour(SeaMark.GREEN_RED_GREEN);
+				setRegion(IALA_B);
+				setColour(GREEN_RED_GREEN);
 			} else {
 				if (getRegion() == IALA_A)
-					setColour(SeaMark.RED_GREEN_RED);
+					setColour(RED_GREEN_RED);
 				else
-					setColour(SeaMark.GREEN_RED_GREEN);
+					setColour(GREEN_RED_GREEN);
 			}
 
@@ -198,14 +197,14 @@
 
 			if (col.equals("green;red;green")) {
-				setRegion(SeaMark.IALA_A);
-				setColour(SeaMark.GREEN_RED_GREEN);
+				setRegion(IALA_A);
+				setColour(GREEN_RED_GREEN);
 			} else if (col.equals("red;green;red")) {
-				setRegion(SeaMark.IALA_B);
-				setColour(SeaMark.RED_GREEN_RED);
+				setRegion(IALA_B);
+				setColour(RED_GREEN_RED);
 			} else {
 				if (getRegion() == IALA_A)
-					setColour(SeaMark.GREEN_RED_GREEN);
+					setColour(GREEN_RED_GREEN);
 				else
-					setColour(SeaMark.RED_GREEN_RED);
+					setColour(RED_GREEN_RED);
 			}
 		}
@@ -278,5 +277,7 @@
 			setLightChar(keys.get("seamark:light:character"));
 			setLightPeriod(keys);
-		}
+			setFired(true);
+		}
+		setLightColour();
 	}
 
@@ -364,6 +365,6 @@
 
 		switch (getBuoyIndex()) {
-		case SeaMark.PORT_HAND:
-			if (region != SeaMark.IALA_B)
+		case PORT_HAND:
+			if (region == IALA_A)
 				switch (style) {
 				case LAT_CAN:
@@ -417,6 +418,6 @@
 			break;
 
-		case SeaMark.STARBOARD_HAND:
-			if (region != SeaMark.IALA_B)
+		case STARBOARD_HAND:
+			if (region == IALA_A)
 				switch (style) {
 				case LAT_CONE:
@@ -470,6 +471,6 @@
 			break;
 
-		case SeaMark.PREF_PORT_HAND:
-			if (region != SeaMark.IALA_B)
+		case PREF_PORT_HAND:
+			if (region == IALA_A)
 				switch (style) {
 				case LAT_CAN:
@@ -517,6 +518,6 @@
 			break;
 
-		case SeaMark.PREF_STARBOARD_HAND:
-			if (region != SeaMark.IALA_B)
+		case PREF_STARBOARD_HAND:
+			if (region == IALA_A)
 				switch (style) {
 				case LAT_CONE:
@@ -655,5 +656,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:buoy_lateral:category", "port"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:buoy_lateral:colour", "red"));
@@ -673,5 +674,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:beacon_lateral:category", "port"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:beacon_lateral:colour", "red"));
@@ -684,5 +685,5 @@
 				break;
 			case LAT_FLOAT:
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:light_float:colour", "red"));
@@ -736,5 +737,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:buoy_lateral:colour_pattern", "horizontal stripes"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:buoy_lateral:colour", "red;green;red"));
@@ -752,5 +753,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:beacon_lateral:colour_pattern", "horizontal stripes"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:beacon_lateral:colour", "red;green;red"));
@@ -765,5 +766,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:light_float:colour_pattern", "horizontal stripes"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:light_float:colour", "red;green;red"));
@@ -822,5 +823,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:buoy_lateral:category", "starboard"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:buoy_lateral:colour", "green"));
@@ -836,5 +837,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:beacon_lateral:category", "starboard"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:beacon_lateral:colour", "green"));
@@ -847,5 +848,5 @@
 				break;
 			case LAT_FLOAT:
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:light_float:colour", "green"));
@@ -905,5 +906,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:buoy_lateral:colour_pattern", "horizontal stripes"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:buoy_lateral:colour", "green;red;green"));
@@ -921,5 +922,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:beacon_lateral:colour_pattern", "horizontal stripes"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:beacon_lateral:colour", "green;red;green"));
@@ -934,5 +935,5 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node,
 						"seamark:light_float:colour_pattern", "horizontal stripes"));
-				if (getRegion() != SeaMark.IALA_B) {
+				if (getRegion() == IALA_A) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node,
 							"seamark:light_float:colour", "green;red;green"));
@@ -958,9 +959,14 @@
 
 	public void setLightColour() {
-		if (getRegion() == IALA_A
-				&& (getBuoyIndex() == PORT_HAND || getBuoyIndex() == PREF_PORT_HAND)) {
-			super.setLightColour("R");
+		if (getRegion() == IALA_A) {
+			if (getBuoyIndex() == PORT_HAND || getBuoyIndex() == PREF_PORT_HAND)
+				super.setLightColour("R");
+			else
+				super.setLightColour("G");
 		} else {
-			super.setLightColour("G");
+			if (getBuoyIndex() == PORT_HAND || getBuoyIndex() == PREF_PORT_HAND)
+				super.setLightColour("G");
+			else
+				super.setLightColour("R");
 		}
 	}
@@ -1011,8 +1017,6 @@
 			}
 			break;
-
 		default:
 		}
-
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyNota.java	(revision 22923)
@@ -31,6 +31,4 @@
 		dlg.cbM01Kennung.addItem("IQ");
 		dlg.cbM01Kennung.setSelectedIndex(0);
-
-		dlg.tbM01Region.setEnabled(false);
 
 		setBuoyIndex(type);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 22923)
@@ -41,5 +41,4 @@
 		dlg.cM01Fired.setSelected(false);
 		dlg.cM01TopMark.setSelected(false);
-		dlg.tbM01Region.setEnabled(false);
 
 		setColour(SeaMark.RED_WHITE);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22923)
@@ -51,5 +51,4 @@
 		dlg.cM01Fired.setEnabled(false);
 		dlg.cM01TopMark.setEnabled(true);
-		dlg.tbM01Region.setEnabled(false);
 
 		setColour(SeaMark.YELLOW);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyUkn.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyUkn.java	(revision 22916)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyUkn.java	(revision 22923)
@@ -5,8 +5,6 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.osm.Node;
 
 import toms.dialogs.SmpDialogAction;
-import toms.seamarks.SeaMark;
 
 public class BuoyUkn extends Buoy {
@@ -24,5 +22,4 @@
 		dlg.cM01Fired.setSelected(false);
 		dlg.cM01TopMark.setSelected(false);
-		dlg.tbM01Region.setEnabled(false);
 
 		setErrMsg(Msg);
