Index: applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22887)
@@ -114,4 +114,5 @@
 	private JLabel lM01Head = null;
 	public JLabel lM01Icon01 = null;
+	public JLabel lM01Icon02 = null;
 	public JToggleButton tbM01Region = null;
 	public JComboBox cbM01TypeOfMark = null;
@@ -515,4 +516,9 @@
 			lM01Icon01.setText("");
 
+			lM01Icon02 = new JLabel();
+			lM01Icon02.setBounds(new Rectangle(225, 0, 160, 200));
+			lM01Icon02.setIcon(null);
+			lM01Icon02.setText("");
+
 			pM01SeaMap = new JPanel();
 			pM01SeaMap.setLayout(null);
@@ -527,4 +533,5 @@
 			pM01SeaMap.add(lM01Head, null);
 			pM01SeaMap.add(lM01Icon01, null);
+			pM01SeaMap.add(lM01Icon02, null);
 			pM01SeaMap.add(getTbM01Region(), null);
 			pM01SeaMap.add(getCbM01TypeOfMark(), null);
@@ -667,4 +674,5 @@
 						tbM01Region.setText("IALA-A");
 					}
+					buoy.paintSign();
 				}
 			});
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 22887)
@@ -272,4 +272,5 @@
 
 		dlg.lM01Icon01.setIcon(null);
+		dlg.lM01Icon02.setIcon(null);
 	}
 
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyCard.java	(revision 22887)
@@ -37,4 +37,5 @@
 		dlg.tbM01Region.setEnabled(false);
 
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
 		if (keys.containsKey("name"))
 			setName(keys.get("name"));
@@ -187,4 +188,5 @@
 
 		dlg.sM01StatusBar.setText(getErrMsg());
+		dlg.lM01Icon02.setIcon(null);
 
 		dlg.tfM01Name.setEnabled(true);
@@ -239,7 +241,10 @@
 		}
 
-		if (!image.equals("")) {
+		if (!image.equals("/images/Cardinal")) {
+			image += ".png";
+			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
+			
 			if (isFired()) {
-				image += "_Lit";
+				dlg.lM01Icon02.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_240.png")));
 
 				if (getLightChar() != "") {
@@ -266,7 +271,4 @@
 			}
 
-			image += ".png";
-
-			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 		} else
 			dlg.lM01Icon01.setIcon(null);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyIsol.java	(revision 22887)
@@ -45,4 +45,5 @@
 		setBuoyIndex(ISOLATED_DANGER);
 		setTopMark(true);
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
 
 		if (keys.containsKey("name"))
@@ -107,4 +108,5 @@
 
 		dlg.sM01StatusBar.setText(getErrMsg());
+		dlg.lM01Icon02.setIcon(null);
 
 		dlg.tfM01Name.setEnabled(true);
@@ -135,6 +137,8 @@
 
 		if (!image.equals("/images/Cardinal")) {
+			image += ".png";
+			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 			if (isFired()) {
-				image += "_Lit";
+				dlg.lM01Icon02.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_240.png")));
 				if (getLightChar() != "") {
 					String c;
@@ -146,6 +150,4 @@
 				}
 			}
-			image += ".png";
-			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 		} else
 			dlg.lM01Icon01.setIcon(null);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyLat.java	(revision 22887)
@@ -301,4 +301,5 @@
 
 		dlg.sM01StatusBar.setText(getErrMsg());
+		dlg.lM01Icon02.setIcon(null);
 
 		dlg.tfM01Name.setEnabled(true);
@@ -535,7 +536,12 @@
 					image += "_Cone";
 			}
+			image += ".png";
+			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 
 			if (isFired())
-				image += "_Lit";
+				if (getLightColour().equals("R"))
+					dlg.lM01Icon02.setIcon(new ImageIcon(getClass().getResource("/images/Light_Red_240.png")));
+				else
+					dlg.lM01Icon02.setIcon(new ImageIcon(getClass().getResource("/images/Light_Green_240.png")));
 			if (getLightChar() != "") {
 				String c;
@@ -550,7 +556,4 @@
 			}
 
-			image += ".png";
-
-			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 		} else
 			dlg.lM01Icon01.setIcon(null);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySaw.java	(revision 22887)
@@ -46,4 +46,5 @@
 		setLightColour("W");
 		setBuoyIndex(SAFE_WATER);
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
 
 		if (keys.containsKey("name"))
@@ -105,4 +106,5 @@
 
 		dlg.sM01StatusBar.setText(getErrMsg());
+		dlg.lM01Icon02.setIcon(null);
 
 		dlg.tfM01Name.setEnabled(true);
@@ -133,4 +135,6 @@
 
 		if (!image.equals("/images/Safe_Water")) {
+			image += ".png";
+			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 
 			if (hasTopMark())
@@ -138,5 +142,5 @@
 
 			if (isFired()) {
-				image += "_Lit";
+				dlg.lM01Icon02.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_240.png")));
 				if (getLightChar() != "") {
 					String c;
@@ -149,7 +153,4 @@
 				}
 			}
-			image += ".png";
-
-			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 		} else
 			dlg.lM01Icon01.setIcon(null);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoySpec.java	(revision 22887)
@@ -56,4 +56,5 @@
 		setLightColour("W");
 		setBuoyIndex(SPECIAL_PURPOSE);
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
 
 		if (keys.containsKey("name"))
@@ -85,8 +86,8 @@
 		if ((keys.containsKey("seamark:type") && keys.get("seamark:type").equals(
 				"beacon_special_purpose"))
-				|| keys.containsKey("seamark:special_purpose_beacon: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"))
+				|| keys.containsKey("seamark:beacon_special_purpose:colour")
+				|| keys.containsKey("seamark:beacon_special_purpose:shape")) {
+			if (keys.containsKey("seamark:beacon_special_purpose:shape")
+					&& keys.get("seamark:beacon_special_purpose:shape").equals("tower"))
 				setStyleIndex(SPEC_TOWER);
 			else
@@ -142,4 +143,5 @@
 
 		dlg.sM01StatusBar.setText(getErrMsg());
+		dlg.lM01Icon02.setIcon(null);
 
 		dlg.tfM01Name.setEnabled(true);
@@ -174,10 +176,11 @@
 
 		if (!image.equals("/images/Special_Purpose")) {
-
 			if (hasTopMark())
 				image += "_CrossY";
+			image += ".png";
+			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 
 			if (isFired()) {
-				image += "_Lit";
+				dlg.lM01Icon02.setIcon(new ImageIcon(getClass().getResource("/images/Light_White_240.png")));
 				if (getLightChar() != "") {
 					String c;
@@ -190,7 +193,4 @@
 				}
 			}
-			image += ".png";
-
-			dlg.lM01Icon01.setIcon(new ImageIcon(getClass().getResource(image)));
 		} else
 			dlg.lM01Icon01.setIcon(null);
Index: applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyUkn.java
===================================================================
--- applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyUkn.java	(revision 22873)
+++ applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/BuoyUkn.java	(revision 22887)
@@ -4,4 +4,5 @@
 package toms.seamarks.buoys;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.Node;
 
@@ -31,4 +32,5 @@
 		setValid(false);
 		setBuoyIndex(0);
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
 	}
 
@@ -36,6 +38,6 @@
 		super.paintSign();
 
-		if (dlg.lM01Icon01 != null)
-			dlg.lM01Icon01.setIcon(null);
+		dlg.lM01Icon01.setIcon(null);
+		dlg.lM01Icon02.setIcon(null);
 		if (getErrMsg() != null)
 			dlg.sM01StatusBar.setText(getErrMsg());
