Index: applications/editors/josm/plugins/wikipedia/build.xml
===================================================================
--- applications/editors/josm/plugins/wikipedia/build.xml	(revision 33672)
+++ applications/editors/josm/plugins/wikipedia/build.xml	(revision 33673)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12880"/>
+    <property name="plugin.main.version" value="12900"/>
     <property name="plugin.canloadatruntime" value="true"/>
 
Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaCopyTemplate.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaCopyTemplate.java	(revision 33672)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaCopyTemplate.java	(revision 33673)
@@ -14,5 +14,6 @@
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.data.Preferences;
-import org.openstreetmap.josm.data.Preferences.pref;
+import org.openstreetmap.josm.data.StructUtils;
+import org.openstreetmap.josm.data.StructUtils.StructEntry;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -32,5 +33,5 @@
 
     private static final List<CoordCopyTemplateEntry> TEMPLATE_ENTRIES =
-            Main.pref.getListOfStructs("wikipedia.copytemplates", DEFAULT_TEMPLATES, CoordCopyTemplateEntry.class);
+            StructUtils.getListOfStructs(Main.pref, "wikipedia.copytemplates", DEFAULT_TEMPLATES, CoordCopyTemplateEntry.class);
 
     public WikipediaCopyTemplate() {
@@ -50,9 +51,9 @@
     @SuppressWarnings("WeakerAccess")
     public static class CoordCopyTemplateEntry {
-        @pref
+        @StructEntry
         public String name;
-        @pref
+        @StructEntry
         public String id;
-        @pref
+        @StructEntry
         public String pattern;
 
Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataItemSearchDialog.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataItemSearchDialog.java	(revision 33672)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataItemSearchDialog.java	(revision 33673)
@@ -24,8 +24,9 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Tag;
+import org.openstreetmap.josm.data.tagging.ac.AutoCompletionItem;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
-import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionListItem;
+import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.GBC;
@@ -45,5 +46,5 @@
         this.targetKey = new AutoCompletingComboBox();
         this.targetKey.setEditable(true);
-        this.targetKey.setSelectedItem(new AutoCompletionListItem("wikidata"));
+        this.targetKey.setSelectedItem(new AutoCompletionItem("wikidata"));
 
         final JPanel panel = new JPanel(new GridBagLayout());
@@ -79,17 +80,17 @@
             return;
         }
-        final Collection<AutoCompletionListItem> keys = new TreeSet<>();
+        final Collection<AutoCompletionItem> keys = new TreeSet<>();
         // from http://wiki.openstreetmap.org/wiki/Proposed_features/Wikidata#Tagging
-        keys.add(new AutoCompletionListItem("wikidata"));
-        keys.add(new AutoCompletionListItem("operator:wikidata"));
-        keys.add(new AutoCompletionListItem("brand:wikidata"));
-        keys.add(new AutoCompletionListItem("architect:wikidata"));
-        keys.add(new AutoCompletionListItem("artist:wikidata"));
-        keys.add(new AutoCompletionListItem("subject:wikidata"));
-        keys.add(new AutoCompletionListItem("name:etymology:wikidata"));
-        editDataSet.getAutoCompletionManager().getKeys().stream()
+        keys.add(new AutoCompletionItem("wikidata"));
+        keys.add(new AutoCompletionItem("operator:wikidata"));
+        keys.add(new AutoCompletionItem("brand:wikidata"));
+        keys.add(new AutoCompletionItem("architect:wikidata"));
+        keys.add(new AutoCompletionItem("artist:wikidata"));
+        keys.add(new AutoCompletionItem("subject:wikidata"));
+        keys.add(new AutoCompletionItem("name:etymology:wikidata"));
+        AutoCompletionManager.of(editDataSet).getTagKeys().stream()
                 .filter(v -> v.getValue().contains("wikidata"))
                 .forEach(keys::add);
-        targetKey.setPossibleACItems(keys);
+        targetKey.setPossibleAcItems(keys);
     }
 
Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikipediaToggleDialog.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikipediaToggleDialog.java	(revision 33672)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikipediaToggleDialog.java	(revision 33673)
@@ -223,5 +223,5 @@
                 List<WikipediaEntry> getEntries() {
                     return WikipediaApp.forLanguage(wikipediaLang.get())
-                            .getEntriesFromCategory(category, Main.pref.getInteger("wikipedia.depth", 3));
+                            .getEntriesFromCategory(category, Main.pref.getInt("wikipedia.depth", 3));
                 }
             }.execute();
Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikosmDownloadSource.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikosmDownloadSource.java	(revision 33672)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikosmDownloadSource.java	(revision 33673)
@@ -26,4 +26,5 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.download.AbstractDownloadSourcePanel;
+import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.download.DownloadSettings;
 import org.openstreetmap.josm.gui.download.DownloadSource;
@@ -44,5 +45,5 @@
 
     @Override
-    public AbstractDownloadSourcePanel<WikosmDownloadData> createPanel() {
+    public AbstractDownloadSourcePanel<WikosmDownloadData> createPanel(DownloadDialog dialog) {
         return new WikosmDownloadSourcePanel(this);
     }
@@ -165,10 +166,10 @@
                     + "parent relations and for nodes, additionally, parent ways"));
             referrers.setSelected(Main.pref.getBoolean("wikosm.downloadprimitive.referrers", true));
-            referrers.addActionListener(e -> Main.pref.put("wikosm.downloadprimitive.referrers", referrers.isSelected()));
+            referrers.addActionListener(e -> Main.pref.putBoolean("wikosm.downloadprimitive.referrers", referrers.isSelected()));
 
             fullRel = new JCheckBox(tr("Download relation members"));
             fullRel.setToolTipText(tr("Select if the members of a relation should be downloaded as well"));
             fullRel.setSelected(Main.pref.getBoolean("wikosm.downloadprimitive.full", true));
-            fullRel.addActionListener(e -> Main.pref.put("wikosm.downloadprimitive.full", fullRel.isSelected()));
+            fullRel.addActionListener(e -> Main.pref.putBoolean("wikosm.downloadprimitive.full", fullRel.isSelected()));
 
             // https://stackoverflow.com/questions/527719/how-to-add-hyperlink-in-jlabel
Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/io/WikosmDownloadReader.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/io/WikosmDownloadReader.java	(revision 33672)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/io/WikosmDownloadReader.java	(revision 33673)
@@ -7,5 +7,5 @@
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.*;
-import org.openstreetmap.josm.data.preferences.CollectionProperty;
+import org.openstreetmap.josm.data.preferences.ListProperty;
 import org.openstreetmap.josm.data.preferences.StringProperty;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -51,5 +51,5 @@
 //    public static final ListProperty WIKOSM_SERVER_HISTORY = new ListProperty("download.wikosm.servers",
 //            Arrays.asList("http://88.99.164.208/bigdata/namespace/wdq/sparql"));
-    public static final CollectionProperty WIKOSM_SERVER_HISTORY = new CollectionProperty("download.wikosm.servers",
+    public static final ListProperty WIKOSM_SERVER_HISTORY = new ListProperty("download.wikosm.servers",
             Arrays.asList("http://88.99.164.208/bigdata/namespace/wdq/sparql"));
 
