Index: trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 15398)
+++ trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 15401)
@@ -121,9 +121,13 @@
 
         private Object getValueForClass(Class<?> klass, String value) {
-            if (klass == Boolean.TYPE)
+            if (boolean.class.equals(klass))
                 return parseBoolean(value);
-            else if (klass == Integer.TYPE || klass == Long.TYPE)
+            else if (Integer.class.equals(klass))
+                return Integer.valueOf(value);
+            else if (Long.class.equals(klass))
                 return Long.valueOf(value);
-            else if (klass == Float.TYPE || klass == Double.TYPE)
+            else if (Float.class.equals(klass))
+                return Float.valueOf(value);
+            else if (Double.class.equals(klass))
                 return Double.valueOf(value);
             return value;
@@ -144,5 +148,7 @@
                 }
                 if (f != null && Modifier.isPublic(f.getModifiers()) && (
-                        String.class.equals(f.getType()) || boolean.class.equals(f.getType()))) {
+                        String.class.equals(f.getType()) || boolean.class.equals(f.getType()) ||
+                        Float.class.equals(f.getType()) || Double.class.equals(f.getType()) ||
+                        Long.class.equals(f.getType()) || Integer.class.equals(f.getType()))) {
                     f.set(c, getValueForClass(f.getType(), value));
                 } else {
