Index: trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 7253)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 7254)
@@ -70,7 +70,10 @@
     /**
      * Reads the presets data.
-     *
      */
-    public void initializePresets() {
+    public static synchronized void initializePresets() {
+        if (!relationpresets.isEmpty()) {
+            // the presets have already been initialized
+            return;
+        }
         for (TaggingPreset p : TaggingPresets.getTaggingPresets()) {
             for (TaggingPresetItem i : p.data) {
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 7253)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 7254)
@@ -170,5 +170,5 @@
 
         public boolean required = false;
-        public long count = 0;
+        private long count = 0;
 
         public void setType(String types) throws SAXException {
@@ -191,17 +191,22 @@
         }
 
-        /* return either argument, the highest possible value or the lowest
-           allowed value */
-        public long getValidCount(long c)
-        {
-            if(count > 0 && !required)
+        public void setCount(String count) {
+            this.count = Long.parseLong(count);
+        }
+
+        /**
+         * Return either argument, the highest possible value or the lowest allowed value
+         */
+        public long getValidCount(long c) {
+            if (count > 0 && !required)
                 return c != 0 ? count : 0;
-            else if(count > 0)
+            else if (count > 0)
                 return count;
-            else if(!required)
-                return c != 0  ? c : 0;
+            else if (!required)
+                return c != 0 ? c : 0;
             else
-                return c != 0  ? c : 1;
-        }
+                return c != 0 ? c : 1;
+        }
+
         public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
             String cstring;
