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 27060)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java	(revision 27061)
@@ -39,6 +39,9 @@
 			for (Cat cat : trafficCats.keySet()) {
 				int idx = trafficCats.get(cat);
-				if (dlg.mark != null && (idx == trafficCatBox.getSelectedIndex()))
+				if (dlg.mark != null && (idx == trafficCatBox.getSelectedIndex())) {
 					dlg.mark.setCategory(cat);
+					dlg.mark.testValid();
+					dlg.mark.paintSign();
+				}
 			}
 		}
@@ -50,6 +53,9 @@
 			for (Cat cat : warningCats.keySet()) {
 				int idx = warningCats.get(cat);
-				if (dlg.mark != null && (idx == warningCatBox.getSelectedIndex()))
+				if (dlg.mark != null && (idx == warningCatBox.getSelectedIndex())) {
 					dlg.mark.setCategory(cat);
+					dlg.mark.testValid();
+					dlg.mark.paintSign();
+				}
 			}
 		}
@@ -85,4 +91,5 @@
 				trafficCatBox.setVisible(false);
 				warningCatBox.setVisible(false);
+				alLandCatBox.actionPerformed(null);
 			} else if (trafficButton.isSelected()) {
 				categoryLabel.setVisible(true);
@@ -90,4 +97,5 @@
 				landCatBox.setVisible(false);
 				warningCatBox.setVisible(false);
+				alTrafficCatBox.actionPerformed(null);
 			} else if (warningButton.isSelected()) {
 				categoryLabel.setVisible(true);
@@ -95,4 +103,5 @@
 				landCatBox.setVisible(false);
 				trafficCatBox.setVisible(false);
+				alWarningCatBox.actionPerformed(null);
 			} else {
 				dlg.mark.setCategory(Cat.NONE);
@@ -188,4 +197,9 @@
 			trafficCatBox.setVisible(false);
 			warningCatBox.setVisible(false);
+			for (Cat cat : landCats.keySet()) {
+				int item = landCats.get(cat);
+				if (dlg.mark.getCategory() == cat)
+					landCatBox.setSelectedIndex(item);
+			}
 		} else if (dlg.mark.getObject() == Obj.SISTAT) {
 				categoryLabel.setVisible(true);
@@ -193,4 +207,9 @@
 				landCatBox.setVisible(false);
 				warningCatBox.setVisible(false);
+				for (Cat cat : trafficCats.keySet()) {
+					int item = trafficCats.get(cat);
+					if (dlg.mark.getCategory() == cat)
+						trafficCatBox.setSelectedIndex(item);
+				}
 		} else if (dlg.mark.getObject() == Obj.SISTAW) {
 			categoryLabel.setVisible(true);
@@ -198,4 +217,9 @@
 			landCatBox.setVisible(false);
 			trafficCatBox.setVisible(false);
+			for (Cat cat : warningCats.keySet()) {
+				int item = warningCats.get(cat);
+				if (dlg.mark.getCategory() == cat)
+					warningCatBox.setSelectedIndex(item);
+			}
 		} else {
 			categoryLabel.setVisible(false);
@@ -203,22 +227,4 @@
 			trafficCatBox.setVisible(false);
 			warningCatBox.setVisible(false);
-		}
-		landCatBox.setSelectedIndex(0);
-		for (Cat cat : landCats.keySet()) {
-			int item = landCats.get(cat);
-			if (dlg.mark.getCategory() == cat)
-				landCatBox.setSelectedIndex(item);
-		}
-		trafficCatBox.setSelectedIndex(0);
-		for (Cat cat : trafficCats.keySet()) {
-			int item = trafficCats.get(cat);
-			if (dlg.mark.getCategory() == cat)
-				trafficCatBox.setSelectedIndex(item);
-		}
-		warningCatBox.setSelectedIndex(0);
-		for (Cat cat : warningCats.keySet()) {
-			int item = warningCats.get(cat);
-			if (dlg.mark.getCategory() == cat)
-				warningCatBox.setSelectedIndex(item);
 		}
 		for (Obj obj : objects.keySet()) {
