Index: applications/editors/josm/plugins/print/build.xml
===================================================================
--- applications/editors/josm/plugins/print/build.xml	(revision 33825)
+++ applications/editors/josm/plugins/print/build.xml	(revision 33826)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Added a field to specify the map scale."/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12678"/>
+    <property name="plugin.main.version" value="12840"/>
 
     <property name="plugin.author" value="Kai Pastor"/>
Index: applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintDialog.java
===================================================================
--- applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintDialog.java	(revision 33825)
+++ applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintDialog.java	(revision 33826)
@@ -25,4 +25,5 @@
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 
@@ -165,5 +166,5 @@
         } else if (isShowing()) { // Avoid IllegalComponentStateException like in #8775
             new WindowGeometry(this).remember(getClass().getName() + ".geometry");
-            Main.pref.put("print.preview.enabled", previewCheckBox.isSelected());
+            Main.pref.putBoolean("print.preview.enabled", previewCheckBox.isSelected());
         }
         super.setVisible(visible);
@@ -219,5 +220,5 @@
         caption = new JLabel(" 1 :");
         add(caption, std.grid(GBC.RELATIVE, row));
-        int mapScale = Main.pref.getInteger("print.map-scale", PrintPlugin.DEF_MAP_SCALE);
+        int mapScale = Main.pref.getInt("print.map-scale", PrintPlugin.DEF_MAP_SCALE);
         mapView.setFixedMapScale(mapScale);
         scaleModel = new SpinnerNumberModel(mapScale, 250, 5000000, 250);
@@ -249,5 +250,5 @@
         add(caption, std.grid(GBC.RELATIVE, row));
         resolutionModel = new SpinnerNumberModel(
-          Main.pref.getInteger("print.resolution.dpi", PrintPlugin.DEF_RESOLUTION_DPI),
+          Main.pref.getInt("print.resolution.dpi", PrintPlugin.DEF_RESOLUTION_DPI),
           30, 1200, 10);
         final JSpinner resolutionField = new JSpinner(resolutionModel);
@@ -415,5 +416,5 @@
             }
         } else if ("toggle-preview".equals(cmd)) {
-            Main.pref.put("print.preview.enabled", previewCheckBox.isSelected());
+            Main.pref.putBoolean("print.preview.enabled", previewCheckBox.isSelected());
             if (previewCheckBox.isSelected()) {
                 printPreview.setPrintable(mapView);
@@ -459,5 +460,5 @@
         PrintService service = job.getPrintService();
         if (service != null) {
-            Collection<Collection<String>> serviceAttributes = new ArrayList<>();
+            List<List<String>> serviceAttributes = new ArrayList<>();
             for (Attribute a : service.getAttributes().toArray()) {
                 if ("printer-name".equals(a.getName()) && a instanceof TextSyntax) {
@@ -465,12 +466,12 @@
                 }
             }
-            Main.pref.putArray("print.settings.service-attributes", serviceAttributes);
+            Main.pref.putListOfLists("print.settings.service-attributes", serviceAttributes);
         }
 
         // Save all request attributes
-        Collection<String> ignoredAttributes = Arrays.asList("media-printable-area");
-        Collection<Collection<String>> requestAttributes = new ArrayList<>();
+        List<String> ignoredAttributes = Arrays.asList("media-printable-area");
+        List<List<String>> requestAttributes = new ArrayList<>();
         for (Attribute a : attrs.toArray()) {
-            Collection<String> setting = null;
+            List<String> setting = null;
             if (a instanceof TextSyntax) {
                 setting = marshallPrintSetting(a, TextSyntax.class, ((TextSyntax) a).getValue());
@@ -487,8 +488,8 @@
             }
         }
-        Main.pref.putArray("print.settings.request-attributes", requestAttributes);
-    }
-
-    protected Collection<String> marshallPrintSetting(Attribute a, Class<?> syntaxClass, String value) {
+        Main.pref.putListOfLists("print.settings.request-attributes", requestAttributes);
+    }
+
+    protected List<String> marshallPrintSetting(Attribute a, Class<?> syntaxClass, String value) {
         return new ArrayList<>(Arrays.asList(a.getCategory().getName(), a.getClass().getName(), syntaxClass.getName(), value));
     }
@@ -539,5 +540,5 @@
 
     protected void loadPrintSettings() {
-        for (Collection<String> setting : Main.pref.getArray("print.settings.service-attributes")) {
+        for (List<String> setting : Main.pref.getListOfLists("print.settings.service-attributes")) {
             try {
                 PrintServiceAttribute a = (PrintServiceAttribute) unmarshallPrintSetting(setting);
@@ -549,5 +550,5 @@
             }
         }
-        for (Collection<String> setting : Main.pref.getArray("print.settings.request-attributes")) {
+        for (List<String> setting : Main.pref.getListOfLists("print.settings.request-attributes")) {
             try {
                 attrs.add(unmarshallPrintSetting(setting));
Index: applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintPlugin.java
===================================================================
--- applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintPlugin.java	(revision 33825)
+++ applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintPlugin.java	(revision 33826)
@@ -92,5 +92,5 @@
     public static void adjustPrefs() {
         if (!Main.pref.getBoolean("print.saved-prefs", false)) {
-            Main.pref.put("print.saved-prefs", true);
+            Main.pref.putBoolean("print.saved-prefs", true);
             adjustPref("draw.data.downloaded_area", false);
             adjustPref("mappaint.node.connection-size", 0);
@@ -114,5 +114,5 @@
             Main.pref.put("print.saved-prefs."+key, Main.pref.get(key));
         }
-        Main.pref.putInteger(key, value);
+        Main.pref.putInt(key, value);
     }
 
@@ -129,5 +129,5 @@
             Main.pref.put("print.saved-prefs."+key, Main.pref.get(key));
         }
-        Main.pref.put(key, value);
+        Main.pref.putBoolean(key, value);
     }
 
@@ -158,5 +158,5 @@
             restorePref("mappaint.node.unselected-size");
             restorePref("mappaint.node.virtual-size");
-            Main.pref.put("print.saved-prefs", false);
+            Main.pref.putBoolean("print.saved-prefs", false);
             //Main.main.map.mapView.repaint();
         }
Index: applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintableMapView.java
===================================================================
--- applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintableMapView.java	(revision 33825)
+++ applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintableMapView.java	(revision 33826)
@@ -110,5 +110,5 @@
      */
     public void initialize(PageFormat pageFormat) {
-        int resolution = Main.pref.getInteger("print.resolution.dpi", PrintPlugin.DEF_RESOLUTION_DPI);
+        int resolution = Main.pref.getInt("print.resolution.dpi", PrintPlugin.DEF_RESOLUTION_DPI);
         g2dFactor = 72.0/resolution;
         setSize((int) (pageFormat.getImageableWidth()/g2dFactor), (int) (pageFormat.getImageableHeight()/g2dFactor));
