diff -Nur dummyserver/handlers.py dummyserver/handlers.py
--- dummyserver/handlers.py	2014-08-06 20:02:49.000000000 +0200
+++ dummyserver/handlers.py	2014-09-26 00:31:08.077758800 +0200
@@ -211,7 +211,7 @@
     """
     import tornado.httputil
     import email.utils
-    from urllib3.packages import six
+    import six
     if not six.PY3:
         line = line.encode('utf-8')
     parts = tornado.httputil._parseparam(';' + line)
diff -Nur setup.py setup.py
--- setup.py	2014-08-06 20:38:12.000000000 +0200
+++ setup.py	2014-09-26 00:35:06.139782615 +0200
@@ -42,7 +42,6 @@
       url='http://urllib3.readthedocs.org/',
       license='MIT',
       packages=['urllib3',
-                'urllib3.packages', 'urllib3.packages.ssl_match_hostname',
                 'urllib3.contrib', 'urllib3.util',
                 ],
       requires=[],
diff -Nur test/__init__.py test/__init__.py
--- test/__init__.py	2014-08-06 20:02:49.000000000 +0200
+++ test/__init__.py	2014-09-26 00:33:32.762949986 +0200
@@ -7,7 +7,7 @@
 from nose.plugins.skip import SkipTest
 
 from urllib3.exceptions import MaxRetryError, HTTPWarning
-from urllib3.packages import six
+import six
 
 # We need a host that will not immediately close the connection with a TCP
 # Reset. SO suggests this hostname
diff -Nur test/contrib/test_pyopenssl.py test/contrib/test_pyopenssl.py
--- test/contrib/test_pyopenssl.py	2014-09-13 20:18:29.000000000 +0200
+++ test/contrib/test_pyopenssl.py	2014-09-26 00:33:50.301730721 +0200
@@ -1,5 +1,5 @@
 from nose.plugins.skip import SkipTest
-from urllib3.packages import six
+import six
 
 if six.PY3:
     raise SkipTest('Testing of PyOpenSSL disabled on PY3')
diff -Nur test/test_collections.py test/test_collections.py
--- test/test_collections.py	2014-08-06 20:38:12.000000000 +0200
+++ test/test_collections.py	2014-09-26 00:28:36.830649649 +0200
@@ -4,7 +4,7 @@
     HTTPHeaderDict,
     RecentlyUsedContainer as Container
 )
-from urllib3.packages import six
+import six
 xrange = six.moves.xrange
 
 
diff -Nur test/test_connectionpool.py test/test_connectionpool.py
--- test/test_connectionpool.py	2014-08-06 20:38:12.000000000 +0200
+++ test/test_connectionpool.py	2014-09-26 00:36:12.962947210 +0200
@@ -6,7 +6,10 @@
     HTTPConnectionPool,
 )
 from urllib3.util.timeout import Timeout
-from urllib3.packages.ssl_match_hostname import CertificateError
+try:
+    from ssl import CertificateError
+except ImportError:
+    from backports.ssl_match_hostname import CertificateError
 from urllib3.exceptions import (
     ClosedPoolError,
     EmptyPoolError,
diff -Nur test/test_fields.py test/test_fields.py
--- test/test_fields.py	2014-08-06 20:38:12.000000000 +0200
+++ test/test_fields.py	2014-09-26 00:31:39.324368163 +0200
@@ -1,7 +1,7 @@
 import unittest
 
 from urllib3.fields import guess_content_type, RequestField
-from urllib3.packages.six import u
+from six import u
 
 
 class TestRequestField(unittest.TestCase):
diff -Nur test/test_filepost.py test/test_filepost.py
--- test/test_filepost.py	2014-08-06 20:38:12.000000000 +0200
+++ test/test_filepost.py	2014-09-26 00:30:35.582165050 +0200
@@ -2,7 +2,7 @@
 
 from urllib3.filepost import encode_multipart_formdata, iter_fields
 from urllib3.fields import RequestField
-from urllib3.packages.six import b, u
+from six import b, u
 
 
 BOUNDARY = '!! test boundary !!'
diff -Nur test/test_retry.py test/test_retry.py
--- test/test_retry.py	2014-08-06 20:38:12.000000000 +0200
+++ test/test_retry.py	2014-09-26 00:33:15.642164025 +0200
@@ -1,6 +1,6 @@
 import unittest
 
-from urllib3.packages.six.moves import xrange
+from six.moves import xrange
 from urllib3.util.retry import Retry
 from urllib3.exceptions import (
     ConnectTimeoutError,
diff -Nur urllib3/_collections.py urllib3/_collections.py
--- urllib3/_collections.py	2014-08-06 20:38:12.000000000 +0200
+++ urllib3/_collections.py	2014-09-26 00:36:59.802361637 +0200
@@ -10,11 +10,8 @@
             pass
 
 
-try: # Python 2.7+
-    from collections import OrderedDict
-except ImportError:
-    from .packages.ordered_dict import OrderedDict
-from .packages.six import itervalues
+from collections import OrderedDict
+from six import itervalues
 
 
 __all__ = ['RecentlyUsedContainer', 'HTTPHeaderDict']
diff -Nur urllib3/connection.py urllib3/connection.py
--- urllib3/connection.py	2014-09-13 20:18:29.000000000 +0200
+++ urllib3/connection.py	2014-09-26 00:39:41.684337834 +0200
@@ -3,7 +3,7 @@
 import socket
 from socket import timeout as SocketTimeout
 import warnings
-from .packages import six
+import six
 
 try:  # Python 3
     from http.client import HTTPConnection as _HTTPConnection, HTTPException
@@ -39,7 +39,10 @@
     ConnectTimeoutError,
     SystemTimeWarning,
 )
-from .packages.ssl_match_hostname import match_hostname
+try:
+    from ssl import match_hostname
+except ImportError:
+    from backports.ssl_match_hostname import match_hostname
 
 from .util.ssl_ import (
     resolve_cert_reqs,
diff -Nur urllib3/connectionpool.py urllib3/connectionpool.py
--- urllib3/connectionpool.py	2014-09-13 20:18:29.000000000 +0200
+++ urllib3/connectionpool.py	2014-09-26 00:37:59.884610505 +0200
@@ -26,8 +26,11 @@
     TimeoutError,
     InsecureRequestWarning,
 )
-from .packages.ssl_match_hostname import CertificateError
-from .packages import six
+try:
+    from ssl import CertificateError
+except ImportError:
+    from backports.ssl_match_hostname import CertificateError
+import six
 from .connection import (
     port_by_scheme,
     DummyConnection,
diff -Nur urllib3/fields.py urllib3/fields.py
--- urllib3/fields.py	2014-08-06 20:38:12.000000000 +0200
+++ urllib3/fields.py	2014-09-26 00:46:37.117144209 +0200
@@ -1,7 +1,7 @@
 import email.utils
 import mimetypes
 
-from .packages import six
+import six
 
 
 def guess_content_type(filename, default='application/octet-stream'):
diff -Nur urllib3/filepost.py urllib3/filepost.py
--- urllib3/filepost.py	2014-08-06 20:38:12.000000000 +0200
+++ urllib3/filepost.py	2014-09-26 00:29:56.885648823 +0200
@@ -3,8 +3,8 @@
 from uuid import uuid4
 from io import BytesIO
 
-from .packages import six
-from .packages.six import b
+import six
+from six import b
 from .fields import RequestField
 
 writer = codecs.lookup('utf-8')[3]
diff -Nur urllib3/response.py urllib3/response.py
--- urllib3/response.py	2014-09-13 20:18:29.000000000 +0200
+++ urllib3/response.py	2014-09-26 00:30:18.828374502 +0200
@@ -4,7 +4,7 @@
 
 from ._collections import HTTPHeaderDict
 from .exceptions import ProtocolError, DecodeError, ReadTimeoutError
-from .packages.six import string_types as basestring, binary_type
+from six import string_types as basestring, binary_type
 from .connection import HTTPException, BaseSSLError
 from .util.response import is_fp_closed
 
diff -Nur urllib3/util/request.py urllib3/util/request.py
--- urllib3/util/request.py	2014-08-06 20:38:12.000000000 +0200
+++ urllib3/util/request.py	2014-09-26 00:32:27.729763013 +0200
@@ -1,6 +1,6 @@
 from base64 import b64encode
 
-from ..packages.six import b
+from six import b
 
 ACCEPT_ENCODING = 'gzip,deflate'
 
diff -Nur urllib3/util/retry.py urllib3/util/retry.py
--- urllib3/util/retry.py	2014-09-13 20:18:29.000000000 +0200
+++ urllib3/util/retry.py	2014-09-26 00:32:56.069408718 +0200
@@ -7,7 +7,7 @@
     ReadTimeoutError,
     MaxRetryError,
 )
-from ..packages import six
+import six
 
 
 log = logging.getLogger(__name__)
