Index: /applications/editors/josm/plugins/roadsigns/build.xml
===================================================================
--- /applications/editors/josm/plugins/roadsigns/build.xml	(revision 33797)
+++ /applications/editors/josm/plugins/roadsigns/build.xml	(revision 33798)
@@ -4,5 +4,5 @@
     <property name="commit.message" value=""/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12678"/>
+    <property name="plugin.main.version" value="13007"/>
 
     <!--
Index: /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java
===================================================================
--- /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java	(revision 33797)
+++ /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java	(revision 33798)
@@ -138,5 +138,5 @@
             Collection<OsmPrimitive> selPrim = MainApplication.getLayerManager().getEditDataSet().getSelected();
             if (!selPrim.isEmpty()) {
-                Main.pref.put("plugin.roadsigns.addTrafficSignTag", addTrafficSignTag.isSelected());
+                Main.pref.putBoolean("plugin.roadsigns.addTrafficSignTag", addTrafficSignTag.isSelected());
 
                 Command cmd = createCommand(selPrim);
Index: /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignsPlugin.java
===================================================================
--- /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignsPlugin.java	(revision 33797)
+++ /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignsPlugin.java	(revision 33798)
@@ -26,5 +26,6 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
-import org.openstreetmap.josm.data.Preferences.pref;
+import org.openstreetmap.josm.data.StructUtils;
+import org.openstreetmap.josm.data.StructUtils.StructEntry;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.dialogs.properties.PropertiesDialog;
@@ -63,5 +64,5 @@
 
     public static File pluginDir() {
-        File dir = new File(plugin.getPluginDir());
+        File dir = plugin.getPluginDirs().getUserDataDirectory(false);
         if (!dir.exists()) {
             dir.mkdirs();
@@ -115,8 +116,8 @@
 
     public static class PresetMetaData {
-        @pref public String code;
-        @pref public String display_name;
-        @pref public String preset_path;
-        @pref public String icon_path;
+        @StructEntry public String code;
+        @StructEntry public String display_name;
+        @StructEntry public String preset_path;
+        @StructEntry public String icon_path;
 
         public PresetMetaData() {
@@ -143,10 +144,11 @@
     public static List<PresetMetaData> getAvailablePresetsMetaData() {
 
-        List<PresetMetaData> presetsData = Main.pref.getListOfStructs("plugin.roadsigns.presets", DEFAULT_PRESETS, PresetMetaData.class);
+        List<PresetMetaData> presetsData = StructUtils.getListOfStructs(
+                Main.pref, "plugin.roadsigns.presets", DEFAULT_PRESETS, PresetMetaData.class);
 
         String customFile = Main.pref.get("plugin.roadsigns.sources", null);
         if (customFile == null) {
             // for legacy reasons, try both string and collection preference type
-            Collection<String> customFiles = Main.pref.getCollection("plugin.roadsigns.sources", null);
+            List<String> customFiles = Main.pref.getList("plugin.roadsigns.sources", null);
             if (customFiles != null && !customFiles.isEmpty()) {
                 customFile = customFiles.iterator().next();
@@ -164,9 +166,9 @@
 
             String customIconDirsStr = Main.pref.get("plugin.roadsigns.icon.sources", null);
-            Collection<String> customIconDirs = null;
+            List<String> customIconDirs = null;
             if (customIconDirsStr != null) {
                 customIconDirs = new ArrayList<>(Arrays.asList(customIconDirsStr.split(",")));
             } else {
-                customIconDirs = Main.pref.getCollection("plugin.roadsigns.icon.sources", null);
+                customIconDirs = Main.pref.getList("plugin.roadsigns.icon.sources", null);
             }
             if (customIconDirs != null) {
