diff --git a/oslo/messaging/transport.py b/oslo/messaging/transport.py
index 4ffefc91e..20274a023 100644
--- a/oslo/messaging/transport.py
+++ b/oslo/messaging/transport.py
@@ -28,6 +28,7 @@ __all__ = [
 ]
 
 from oslo.config import cfg
+import six
 from stevedore import driver
 
 from oslo.messaging import exceptions
@@ -352,8 +353,7 @@ class TransportURL(object):
         if not url:
             return cls(conf, aliases=aliases)
 
-        # FIXME(flaper87): Not PY3K compliant
-        if not isinstance(url, basestring):
+        if not isinstance(url, six.string_types):
             raise InvalidTransportURL(url, 'Wrong URL type')
 
         url = urlutils.urlparse(url)
diff --git a/tests/test_exception_serialization.py b/tests/test_exception_serialization.py
index efc4d50fc..5fed251f6 100644
--- a/tests/test_exception_serialization.py
+++ b/tests/test_exception_serialization.py
@@ -121,6 +121,7 @@ class SerializeRemoteExceptionTestCase(test_utils.BaseTestCase):
             try:
                 raise self.cls(*self.args, **self.kwargs)
             except Exception as ex:
+                cls_error = ex
                 if self.add_remote:
                     ex = add_remote_postfix(ex)
                 raise ex
@@ -139,7 +140,7 @@ class SerializeRemoteExceptionTestCase(test_utils.BaseTestCase):
         self.assertEqual(failure['kwargs'], self.kwargs)
 
         # Note: _Remote prefix not stripped from tracebacks
-        tb = ex.__class__.__name__ + ': ' + self.msg
+        tb = cls_error.__class__.__name__ + ': ' + self.msg
         self.assertIn(tb, ''.join(failure['tb']))
 
         if self.log_failure: