diff --git a/nameko/consuming.py b/nameko/consuming.py
index <HASH>..<HASH> 100644
--- a/nameko/consuming.py
+++ b/nameko/consuming.py
@@ -1,9 +1,12 @@
+import eventlet
 from kombu.common import itermessages
+from nameko.exceptions import WaiterTimeout
 
 
 def queue_iterator(queue, no_ack=False, timeout=None):
     channel = queue.channel
 
-    for _, msg in itermessages(channel.connection, channel,
-            queue, limit=None, no_ack=no_ack, timeout=timeout):
-        yield msg
+    with eventlet.Timeout(timeout, exception=WaiterTimeout()):
+        for _, msg in itermessages(channel.connection, channel, queue,
+                                   limit=None, no_ack=no_ack):
+            yield msg
the timeout param to itermessages didn't do what we wanted. Use eventlet instead