diff --git a/django/contrib/admin/templatetags/admin_urls.py b/django/contrib/admin/templatetags/admin_urls.py
index 350057a117..b19ee104a1 100644
--- a/django/contrib/admin/templatetags/admin_urls.py
+++ b/django/contrib/admin/templatetags/admin_urls.py
@@ -1,12 +1,8 @@
-try:
-    from urllib.parse import parse_qsl, urlparse, urlunparse
-except ImportError:
-    from urlparse import parse_qsl, urlparse, urlunparse
-
 from django import template
 from django.contrib.admin.utils import quote
 from django.core.urlresolvers import Resolver404, get_script_prefix, resolve
 from django.utils.http import urlencode
+from django.utils.six.moves.urllib.parse import parse_qsl, urlparse, urlunparse
 
 register = template.Library()
 
diff --git a/django/http/request.py b/django/http/request.py
index 6bce1f718d..4f272ec2c7 100644
--- a/django/http/request.py
+++ b/django/http/request.py
@@ -6,11 +6,6 @@ import re
 import sys
 from io import BytesIO
 from pprint import pformat
-try:
-    from urllib.parse import parse_qsl, urlencode, quote, urljoin
-except ImportError:
-    from urllib import urlencode, quote
-    from urlparse import parse_qsl, urljoin
 
 from django.conf import settings
 from django.core import signing
@@ -20,6 +15,7 @@ from django.http.multipartparser import MultiPartParser, MultiPartParserError
 from django.utils import six
 from django.utils.datastructures import MultiValueDict, ImmutableList
 from django.utils.encoding import force_bytes, force_text, force_str, iri_to_uri
+from django.utils.six.moves.urllib.parse import parse_qsl, urlencode, quote, urljoin
 
 
 RAISE_ERROR = object()
diff --git a/django/http/response.py b/django/http/response.py
index 602e03284d..27d99a621d 100644
--- a/django/http/response.py
+++ b/django/http/response.py
@@ -5,10 +5,6 @@ import json
 import sys
 import time
 from email.header import Header
-try:
-    from urllib.parse import urlparse
-except ImportError:
-    from urlparse import urlparse
 
 from django.conf import settings
 from django.core import signals
@@ -20,6 +16,7 @@ from django.utils import six, timezone
 from django.utils.encoding import force_bytes, force_text, iri_to_uri
 from django.utils.http import cookie_date
 from django.utils.six.moves import map
+from django.utils.six.moves.urllib.parse import urlparse
 
 
 # See http://www.iana.org/assignments/http-status-codes
diff --git a/docs/ref/urlresolvers.txt b/docs/ref/urlresolvers.txt
index 2c57a5e1cd..13e5c559db 100644
--- a/docs/ref/urlresolvers.txt
+++ b/docs/ref/urlresolvers.txt
@@ -166,9 +166,9 @@ A :class:`ResolverMatch` object can also be assigned to a triple::
 One possible use of :func:`~django.core.urlresolvers.resolve` would be to test
 whether a view would raise a ``Http404`` error before redirecting to it::
 
-    from urlparse import urlparse
     from django.core.urlresolvers import resolve
     from django.http import HttpResponseRedirect, Http404
+    from django.utils.six.moves.urllib.parse import urlparse
 
     def myview(request):
         next = request.META.get('HTTP_REFERER', None) or '/'