Index: trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 9929)
+++ trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 9930)
@@ -453,5 +453,6 @@
         @Override
         public String toString() {
-            return lhs + " && " + rhs;
+            return (lhs instanceof BinaryMatch && !(lhs instanceof And) ? "(" + lhs + ")" : lhs) + " && "
+                    + (rhs instanceof BinaryMatch && !(rhs instanceof And) ? "(" + rhs + ")" : rhs);
         }
     }
@@ -477,5 +478,6 @@
         @Override
         public String toString() {
-            return lhs + " || " + rhs;
+            return (lhs instanceof BinaryMatch && !(lhs instanceof Or) ? "(" + lhs + ")" : lhs) + " || "
+                    + (rhs instanceof BinaryMatch && !(rhs instanceof Or) ? "(" + rhs + ")" : rhs);
         }
     }
@@ -501,5 +503,6 @@
         @Override
         public String toString() {
-            return lhs + " ^ " + rhs;
+            return (lhs instanceof BinaryMatch && !(lhs instanceof Xor) ? "(" + lhs + ")" : lhs) + " ^ "
+                    + (rhs instanceof BinaryMatch && !(rhs instanceof Xor) ? "(" + rhs + ")" : rhs);
         }
     }
