diff --git a/circle/vm/tasks/vm_tasks.py b/circle/vm/tasks/vm_tasks.py
index 4887cc3..0252b5b 100644
--- a/circle/vm/tasks/vm_tasks.py
+++ b/circle/vm/tasks/vm_tasks.py
@@ -19,18 +19,16 @@ def check_queue(node_hostname, queue_id):
     active_queues = get_queues()
     if active_queues is None:
         return False
-    # v is List of List of queues dict
-    node_workers = [v for k, v in active_queues.iteritems()]
-    for worker in node_workers:
-        for queue in worker:
-            if queue['name'] == queue_name:
-                return True
-    return False
+    queue_names = (queue['name'] for worker in active_queues.itervalues()
+                   for queue in worker)
+    return queue_name in queue_names
 
 
 def get_queues():
     """Get active celery queues.
 
+    Returns a dictionary whose entries are (worker name;list of queues) pairs,
+    where queues are represented by dictionaries.
     Result is cached for 10 seconds!
     """
     key = __name__ + u'queues'