Index: /src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java
===================================================================
--- /src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java	(revision 189)
+++ /src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java	(revision 190)
@@ -184,7 +184,6 @@
 				current.add(new Text(a.getValue("key"), a.getValue("text"), a.getValue("default"), parseBoolean(a.getValue("delete_if_empty"))));
 			else if (qname.equals("check")) {
-				String s = a.getValue("default");
-				boolean clear = parseBoolean(s);
-				current.add(new Check(a.getValue("key"), a.getValue("text"), !clear));
+				boolean checked = parseBoolean(a.getValue("default"));
+				current.add(new Check(a.getValue("key"), a.getValue("text"), checked));
 			} else if (qname.equals("label"))
 				current.add(new Label(a.getValue("text")));
@@ -193,5 +192,5 @@
 				String s = a.getValue("readonly");
 				String dvstr = a.getValue("display_values");
-				boolean editable = parseBoolean(s);
+				boolean editable = !parseBoolean(s);
 				if (dvstr != null) {
 					if (editable && s != null)
@@ -212,5 +211,9 @@
 
 		private boolean parseBoolean(String s) {
-			return s == null || s.equals("0") || s.startsWith("off") || s.startsWith("false") || s.startsWith("no");
+			return s != null && 
+				!s.equals("0") && 
+				!s.startsWith("off") && 
+				!s.startsWith("false") &&
+				!s.startsWith("no");
 		}
 
