the Python docs say that the return value of `__str__` must be a "string" object -- which means bytes in Python 2 and unicode in Python 3. Previously, str(namerecord) would always call 'toUnicode' method, even on Python 2. https://docs.python.org/2/reference/datamodel.html#object.__str__ https://docs.python.org/3/reference/datamodel.html#object.__str__