diff --git a/functional/test_event_sinks.py b/functional/test_event_sinks.py
index 95d0d1a..61f1bfa 100644
--- a/functional/test_event_sinks.py
+++ b/functional/test_event_sinks.py
@@ -14,6 +14,7 @@
 
 from zaqarclient.queues.v2 import client as zaqarclient
 
+from heat_integrationtests.common import test
 from heat_integrationtests.functional import functional_base
 
 
@@ -54,17 +55,25 @@
 
         zaqar = zaqarclient.Client(conf=conf)
         queue = zaqar.queue(queue_id)
-        messages = list(queue.messages())
-        self.assertEqual(4, len(messages))
-        types = [m.body['type'] for m in messages]
-        self.assertEqual(['os.heat.event'] * 4, types)
-        resources = set([m.body['payload']['resource_name'] for m in messages])
-        self.assertEqual(set([stack_name, 'test_resource']), resources)
-        stack_ids = [m.body['payload']['stack_id'] for m in messages]
-        self.assertEqual([stack_id] * 4, stack_ids)
-        statuses = [m.body['payload']['resource_status'] for m in messages]
-        statuses.sort()
-        self.assertEqual(
-            ['COMPLETE', 'COMPLETE', 'IN_PROGRESS', 'IN_PROGRESS'], statuses)
-        actions = [m.body['payload']['resource_action'] for m in messages]
-        self.assertEqual(['CREATE'] * 4, actions)
+
+        def validate_messages():
+            messages = list(queue.messages())
+            if len(messages) < 4:
+                return False
+
+            types = [m.body['type'] for m in messages]
+            self.assertEqual(['os.heat.event'] * 4, types)
+            resources = set([m.body['payload'][
+                'resource_name'] for m in messages])
+            self.assertEqual(set([stack_name, 'test_resource']), resources)
+            stack_ids = [m.body['payload']['stack_id'] for m in messages]
+            self.assertEqual([stack_id] * 4, stack_ids)
+            statuses = [m.body['payload']['resource_status'] for m in messages]
+            statuses.sort()
+            self.assertEqual(['COMPLETE', 'COMPLETE',
+                              'IN_PROGRESS', 'IN_PROGRESS'], statuses)
+            actions = [m.body['payload']['resource_action'] for m in messages]
+            self.assertEqual(['CREATE'] * 4, actions)
+            return True
+
+        self.assertTrue(test.call_until_true(20, 0, validate_messages))
diff --git a/functional/test_heat_autoscaling.py b/functional/test_heat_autoscaling.py
index 608fd1d..474e1c3 100644
--- a/functional/test_heat_autoscaling.py
+++ b/functional/test_heat_autoscaling.py
@@ -146,7 +146,7 @@
 
     def test_asg_cooldown(self):
         cooldown_tmpl = self.template.replace('cooldown: 0',
-                                              'cooldown: 10')
+                                              'cooldown: 60')
         stack_id = self.stack_create(template=cooldown_tmpl,
                                      expected_status='CREATE_COMPLETE')
         stack = self.client.stacks.get(stack_id)
