diff --git a/product/ZSQLCatalog/SQLCatalog.py b/product/ZSQLCatalog/SQLCatalog.py
index e26dcdcead6c4f52f636733fd641f7646f3ac7a0..38d26dc10698394d95d242a1da3a5ee5d1ea6773 100644
--- a/product/ZSQLCatalog/SQLCatalog.py
+++ b/product/ZSQLCatalog/SQLCatalog.py
@@ -326,8 +326,8 @@ class Query(QueryMixin):
     self.type = type
     self.search_key = key
 
-  def __call__(self):
-    self.asSQLExpression()
+  def __call__(self, **kw):
+    return self.asSQLExpression(**kw)
 
   def getRange(self):
     return self.range
@@ -384,7 +384,7 @@ class Query(QueryMixin):
     range_value = self.getRange()
     format = self.getFormat()
     if ignore_key:
-      pass
+      pass    
     elif range_value is not None:
       if isinstance(value, (list, tuple)):
         if format is None:
@@ -530,8 +530,8 @@ class ComplexQuery(QueryMixin):
     # XXX: What is that used for ?! It's utterly dangerous.
     self.__dict__.update(kw)
 
-  def __call__(self):
-    self.asSQLExpression()
+  def __call__(self, **kw):
+    return self.asSQLExpression(**kw)
 
   def getQueryList(self):
     return self.query_list