diff --git a/swiftclient/client.py b/swiftclient/client.py
index a9130ab5..168bfeda 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -23,7 +23,7 @@ import warnings
 
 from requests.exceptions import RequestException, SSLError
 import http.client as http_client
-from urllib.parse import quote as _quote, unquote
+from urllib.parse import quote, unquote
 from urllib.parse import urljoin, urlparse, urlunparse
 from time import sleep, time
 
@@ -181,14 +181,6 @@ def parse_header_string(data):
     return unquoted
 
 
-def quote(value, safe='/'):
-    """
-    Patched version of urllib.quote that encodes utf8 strings before quoting.
-    On Python 3, call directly urllib.parse.quote().
-    """
-    return _quote(value, safe=safe)
-
-
 def encode_utf8(value):
     if type(value) in (int, float, bool):
         # As of requests 2.11.0, headers must be byte- or unicode-strings.
diff --git a/swiftclient/service.py b/swiftclient/service.py
index 9d9fc594..ed0f40a7 100644
--- a/swiftclient/service.py
+++ b/swiftclient/service.py
@@ -2034,11 +2034,6 @@ class SwiftService:
         if headers is None:
             headers = {}
         segment_results.sort(key=lambda di: di['segment_index'])
-        for seg in segment_results:
-            seg_loc = seg['segment_location'].lstrip('/')
-            if isinstance(seg_loc, str):
-                seg_loc = seg_loc.encode('utf-8')
-
         manifest_data = json.dumps([
             {
                 'path': d['segment_location'],
diff --git a/swiftclient/shell.py b/swiftclient/shell.py
index b4721fe4..5bcff7fc 100755
--- a/swiftclient/shell.py
+++ b/swiftclient/shell.py
@@ -1938,8 +1938,6 @@ def add_default_args(parser):
 def main(arguments=None):
     argv = sys_argv if arguments is None else arguments
 
-    argv = [a if isinstance(a, str) else a.decode('utf-8') for a in argv]
-
     parser = argparse.ArgumentParser(
         add_help=False, formatter_class=HelpFormatter, usage='''
 %(prog)s [--version] [--help] [--os-help] [--snet] [--verbose]
diff --git a/test-requirements.txt b/test-requirements.txt
index b0633eb9..a4b64ee7 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,7 +1,6 @@
-hacking>=1.1.0,<1.2.0;python_version<'3.0' # Apache-2.0
-hacking>=3.2.0,<3.3.0;python_version>='3.0' # Apache-2.0
+hacking>=3.2.0,<3.3.0 # Apache-2.0
 
-coverage!=4.4,>=4.0 # Apache-2.0
+coverage!=4.4,>=4.0   # Apache-2.0
 keystoneauth1>=3.4.0  # Apache-2.0
 stestr>=2.0.0,!=3.0.0 # Apache-2.0
-openstacksdk>=0.11.0 # Apache-2.0
+openstacksdk>=0.11.0  # Apache-2.0
diff --git a/test/unit/test_multithreading.py b/test/unit/test_multithreading.py
index d51bfb7c..8237d829 100644
--- a/test/unit/test_multithreading.py
+++ b/test/unit/test_multithreading.py
@@ -216,12 +216,11 @@ class TestOutputManager(unittest.TestCase):
         # The threads should have been cleaned up
         self.assertEqual(starting_thread_count, threading.active_count())
 
-        over_the = "over the '\u062a\u062a'\n"
         self.assertEqual(''.join([
             'one-argument\n',
             'one fish, 88 fish\n',
             'some\n', 'where\n',
-            over_the,
+            "over the '\u062a\u062a'\n",
             'some raw bytes: \u062a\u062a',
             '           key: value\n',
             '        object: O\u0308bject\n'
diff --git a/test/unit/test_shell.py b/test/unit/test_shell.py
index db0d66c3..8254388a 100644
--- a/test/unit/test_shell.py
+++ b/test/unit/test_shell.py
@@ -1622,7 +1622,7 @@ class TestShell(unittest.TestCase):
         with mock.patch('swiftclient.shell.SwiftService.delete') as mock_func:
             with CaptureOutput() as out:
                 mock_func.return_value = [res]
-                swiftclient.shell.main(base_argv + [container.encode('utf-8')])
+                swiftclient.shell.main(base_argv + [container])
 
                 mock_func.assert_called_once_with(container=container)
                 self.assertTrue(out.out.find(
@@ -1635,7 +1635,7 @@ class TestShell(unittest.TestCase):
         with mock.patch('swiftclient.shell.SwiftService.delete') as mock_func:
             with CaptureOutput() as out:
                 mock_func.return_value = [res]
-                swiftclient.shell.main(base_argv + [container.encode('utf-8')])
+                swiftclient.shell.main(base_argv + [container])
 
                 mock_func.assert_called_once_with(container=container)
                 self.assertTrue(out.out.find(