diff --git a/CHANGELOG.md b/CHANGELOG.md
index b63ac90d475d0f5ada1396aa2e40f5266d3aab73..f6a4e59827b99bab3122518dcae837a431a16e35 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
 # v0.106:
 
-* _TBA_
+* bugfix release: `NodeDefinition` is now properly str-able
 
 # v0.105:
 
diff --git a/coolamqp/__init__.py b/coolamqp/__init__.py
index 9f2cf2890d67e4714a36f18e32c8c86dacc47954..9c7de3a7d7142643d3721cc097b55c31931c25a6 100644
--- a/coolamqp/__init__.py
+++ b/coolamqp/__init__.py
@@ -1,2 +1,2 @@
 # coding=UTF-8
-__version__ = '0.106a1'
+__version__ = '0.106'
diff --git a/coolamqp/objects.py b/coolamqp/objects.py
index a8f682ff4839df7c42d328fc36e8276ed1f6b7c6..ee66fcf002b07fe1b994a28b7cbeafd0a925a252 100644
--- a/coolamqp/objects.py
+++ b/coolamqp/objects.py
@@ -302,5 +302,4 @@ class NodeDefinition(object):
 
     def __str__(self):  # type: () -> str
         return six.text_type(
-            b'amqp://%s:%s@%s/%s'.encode('utf8') % (
-                self.host, self.port, self.user, self.virtual_host))
+            'amqp://%s:%s@%s/%s' % (self.host, self.port, self.user, self.virtual_host))