diff --git a/product/ZSQLCatalog/SQLCatalog.py b/product/ZSQLCatalog/SQLCatalog.py
index 9f1d1dfa3b9f490dd63a9eb619162425f1ec639f..e30ea0c62b62523b63ef809e1f1e6f605179589b 100644
--- a/product/ZSQLCatalog/SQLCatalog.py
+++ b/product/ZSQLCatalog/SQLCatalog.py
@@ -1833,12 +1833,9 @@ class Catalog(Folder,
           if hasattr(current_query, 'order_by'): query_group_by_list = current_query.order_by
         else:
           if isinstance(value, dict):
-            # XXX: If dictionary has more that one key, subsequent Query() will raise.
-            for value_key in value.keys():
-              if value_key == 'query':
-                new_query_dict[key] = value['query']
-              else:
-                new_query_dict[value_key] = value[value_key]
+            new_query_dict = value.copy()
+            if 'query' in new_query_dict:
+              new_query_dict[key] = new_query_dict.pop('query')
           else:
             new_query_dict[key] = value
           current_query = Query(**new_query_dict)