Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 887)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 888)
@@ -38,10 +38,19 @@
     	JLabel label = new JLabel(tr("Please enter a search string."));
     	final JTextField input = new JTextField(lastSearch);
-    	input.setToolTipText(tr("<html>Fulltext search.<ul>" +
-    			"<li><code>Baker Street</code>  - 'Baker' and 'Street' in any key or name.</li>" +
-    			"<li><code>\"Baker Street\"</code>  - 'Baker Street' in any key or name.</li>" +
-    			"<li><code>name:Bak</code>  - 'Bak' anywhere in the name.</li>" +
-    			"<li><code>-name:Bak</code>  - not 'Bak' in the name.</li>" +
-    			"<li><code>foot:</code>  - key=foot set to any value." +
+    	input.setToolTipText(tr("<html>Fulltext search:<ul>" +
+    			"<li><b>Baker Street</b> - 'Baker' and 'Street' in any key or name.</li>" +
+    			"<li><b>\"Baker Street\"</b> - 'Baker Street' in any key or name.</li>" +
+    			"<li><b>name:Bak</b> - 'Bak' anywhere in the name.</li>" +
+    			"<li><b>-name:Bak</b> - not 'Bak' in the name.</li>" +
+    			"<li><b>foot:</b> - key=foot set to any value.</li>" +
+    			"<li>Special targets:</li>" +
+    			"<li><b>type:</b> - type of the object (<b>node</b>, <b>way</b>, <b>relation</b>)</li>" +
+    			"<li><b>user:</b>... - all objects changed by user</li>" +
+    			"<li><b>id:</b>... - object with given ID</li>" +
+    			"<li><b>nodes:</b>... - object with given number of nodes</li>" +
+    			"<li><b>modified</b> - all changed objects</li>" +
+    			"<li><b>incomplete</b> - all incomplete objects</li>" +
+    			"<li>Use <b>|</b> or <b>OR</b> to combine with logical or</li>" +
+    			"<li>Use <b>\"</b> to quote operators (e.g. if key contains :)</li>" +
     	"</ul></html>"));
     
Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 887)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 888)
@@ -1,4 +1,6 @@
 // License: GPL. Copyright 2007 by Immanuel Scholz and others
 package org.openstreetmap.josm.actions.search;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.io.PushbackReader;
@@ -153,5 +155,5 @@
 	private static class Modified extends Match {
 		@Override public boolean match(OsmPrimitive osm) {
-			return osm.modified;
+			return osm.modified || osm.id == 0;
 		}
 		@Override public String toString() {return "modified";}
@@ -210,5 +212,5 @@
 			Match b = parseNot();
 			if (a == null || b == null) {
-				throw new ParseError("Missing arguments for or.");
+				throw new ParseError(tr("Missing arguments for or."));
 			}
 			return new Or(a, b);
@@ -221,5 +223,5 @@
 			Match m = parseParens();
 			if (m == null) {
-				throw new ParseError("Missing argument for not.");
+				throw new ParseError(tr("Missing argument for not."));
 			}
 			return new Not(m);
@@ -232,5 +234,5 @@
 			Match m = parseJuxta();
 			if (!tokenizer.readIfEqual(")")) {
-				throw new ParseError("Expected closing paren");
+				throw new ParseError(tr("Expected closing parenthesis."));
 			}
 			return m;
