diff --git a/coolamqp/attaches/consumer.py b/coolamqp/attaches/consumer.py
index a18e089f5a6294304aa2f28bae3b9a8744807ebb..d5f0c141052b3859f73a8652f1e41334f6818470 100644
--- a/coolamqp/attaches/consumer.py
+++ b/coolamqp/attaches/consumer.py
@@ -384,7 +384,7 @@ class Consumer(Channeler):
         elif isinstance(payload, ExchangeDeclareOk):
             # Declare the queue
 
-            name = self.queue.name
+            name = b'' if self.queue.anonymous else self.queue.name
 
             self.connection.method_and_watch(
                 self.channel_id,
diff --git a/coolamqp/attaches/declarer.py b/coolamqp/attaches/declarer.py
index e81d786e6aa9bf1708e09187eddfcd7b4b885c3c..084e54288eb58bc797e73415a9483e068d7ac4f7 100644
--- a/coolamqp/attaches/declarer.py
+++ b/coolamqp/attaches/declarer.py
@@ -140,6 +140,7 @@ class Operation(object):
         else:
             if isinstance(payload, QueueDeclareOk) and not self.obj.name:
                 self.obj.name = payload.queue
+                self.obj.anonymous = False
 
             self.span_finished()
             if self.fut is not None: