diff --git a/product/ZSQLCatalog/SearchKey/DefaultKey.py b/product/ZSQLCatalog/SearchKey/DefaultKey.py
index f1bc2d19c4a29299c0efcf745c6d7c7c128e78a2..2c8299efe44a1663ba76033f416eeeab605998fe 100644
--- a/product/ZSQLCatalog/SearchKey/DefaultKey.py
+++ b/product/ZSQLCatalog/SearchKey/DefaultKey.py
@@ -29,6 +29,7 @@
 ##############################################################################
 
 from SearchKey import SearchKey
+from Products.ZSQLCatalog.SearchText import parse
 from Products.ZSQLCatalog.Interface.ISearchKey import ISearchKey
 from Interface.Verify import verifyClass
 
@@ -41,6 +42,9 @@ class DefaultKey(SearchKey):
   default_comparison_operator = '='
   get_operator_from_value = True
 
+  def parseSearchText(self, value):
+    return parse(value)
+
   def _guessComparisonOperator(self, value):
     if isinstance(value, basestring) and '%' in value:
       operator = 'like'
diff --git a/product/ZSQLCatalog/tests/testSQLCatalog.py b/product/ZSQLCatalog/tests/testSQLCatalog.py
index 8fbcb2f0df116a6c4bff2d9e54ee176c055ae0bf..c22386dff4da22a4549ee3d124403c330c552483 100644
--- a/product/ZSQLCatalog/tests/testSQLCatalog.py
+++ b/product/ZSQLCatalog/tests/testSQLCatalog.py
@@ -184,16 +184,20 @@ class TestSQLCatalog(unittest.TestCase):
                    {column: '!=a'})
       self.catalog(ReferenceQuery(ReferenceQuery(operator='=', default='a b'), operator='and'),
                    {column: 'a b'})
-      self.catalog(ReferenceQuery(ReferenceQuery(operator='=', default='a >b'), operator='and'),
+      self.catalog(ReferenceQuery(ReferenceQuery(ReferenceQuery(operator='=', default='a'), ReferenceQuery(operator='>', default='b'), operator='or'), operator='and'),
                    {column: 'a >b'})
-      self.catalog(ReferenceQuery(ReferenceQuery(operator='>', default='a >b'), operator='and'),
+      self.catalog(ReferenceQuery(ReferenceQuery(operator='=', default='a > b'), operator='and'),
+                   {column: 'a > b'})
+      self.catalog(ReferenceQuery(ReferenceQuery(ReferenceQuery(operator='>', default='a'), ReferenceQuery(operator='>', default='b'), operator='or'), operator='and'),
                    {column: '>a >b'})
       self.catalog(ReferenceQuery(ReferenceQuery(operator='=', default='>a >b'), operator='and'),
                    {column: '">a >b"'})
       self.catalog(ReferenceQuery(ReferenceQuery(operator='>', default='>a >b'), operator='and'),
                    {column: '>">a >b"'})
-      self.catalog(ReferenceQuery(ReferenceQuery(operator='=', default='a OR b'), operator='and'),
+      self.catalog(ReferenceQuery(ReferenceQuery(operator='in', default=['a', 'b']), operator='and'),
                    {column: 'a OR b'})
+      self.catalog(ReferenceQuery(ReferenceQuery(operator='=', default='a OR b'), operator='and'),
+                   {column: '"a OR b"'})
       self.catalog(ReferenceQuery(ReferenceQuery(operator='<', default='path'), operator='and'),
                    {column: {'query': 'path', 'range': 'max'}})
       self.catalog(ReferenceQuery(ReferenceQuery(operator='in', default=['a', 'b']), operator='and'),