diff --git a/coolamqp/clustering/cluster.py b/coolamqp/clustering/cluster.py
index ec40b50e835699c85c56ea4ea7a90a8d8711f309..c7202339989362c6bfd12933d5b9c2acb405176b 100644
--- a/coolamqp/clustering/cluster.py
+++ b/coolamqp/clustering/cluster.py
@@ -128,6 +128,9 @@ class Cluster(object):
         else:
             exchange = exchange.encode('utf8')
 
+        if isinstance(routing_key, six.text_type):
+            routing_key = routing_key.encode('utf8')
+
         if tx is not None:  # confirm is a drop-in replacement. tx is unfortunately named
             warnings.warn(u'Use confirm kwarg instead', DeprecationWarning)