Index: django/core/servers/basehttp.py
===================================================================
--- django/core/servers/basehttp.py	(revision 7920)
+++ django/core/servers/basehttp.py	(working copy)
@@ -658,8 +658,14 @@
         start_response(status, headers.items())
         return output
 
-def run(addr, port, wsgi_handler):
+def run(addr, port, wsgi_handler, enable_ipv6=False):
     server_address = (addr, port)
-    httpd = WSGIServer(server_address, WSGIRequestHandler)
+    if not enable_ipv6:
+        httpd = WSGIServer(server_address, WSGIRequestHandler)
+    else:
+        import socket
+        class WSGIServerV6(WSGIServer):
+            address_family = socket.AF_INET6
+        httpd = WSGIServerV6(server_address, WSGIRequestHandler)
     httpd.set_app(wsgi_handler)
     httpd.serve_forever()
Index: django/core/management/commands/runserver.py
===================================================================
--- django/core/management/commands/runserver.py	(revision 7920)
+++ django/core/management/commands/runserver.py	(working copy)
@@ -5,6 +5,8 @@
 
 class Command(BaseCommand):
     option_list = BaseCommand.option_list + (
+        make_option('--ipv6', '-6', action='store_true', dest='enable_ipv6', default=False,
+            help='Enables IPv6 support.'),
         make_option('--noreload', action='store_false', dest='use_reloader', default=True,
             help='Tells Django to NOT use the auto-reloader.'),
         make_option('--adminmedia', dest='admin_media_path', default='',
@@ -20,6 +22,12 @@
         import django
         from django.core.servers.basehttp import run, AdminMediaHandler, WSGIServerException
         from django.core.handlers.wsgi import WSGIHandler
+        enable_ipv6=options.get('enable_ipv6')
+        if enable_ipv6:
+                import socket
+                if not hasattr(socket, 'AF_INET6'):
+                        raise CommandError("This Python does not support IPv6.")
+
         if args:
             raise CommandError('Usage is runserver %s' % self.args)
         if not addrport:
@@ -27,11 +35,12 @@
             port = '8000'
         else:
             try:
-                addr, port = addrport.split(':')
+                addr, port = addrport.rsplit(':',1)
             except ValueError:
                 addr, port = '', addrport
         if not addr:
-            addr = '127.0.0.1'
+            if not enable_ipv6: addr = '127.0.0.1'
+            else: addr = '::1'
 
         if not port.isdigit():
             raise CommandError("%r is not a valid port number." % port)
@@ -51,7 +60,7 @@
             try:
                 path = admin_media_path or django.__path__[0] + '/contrib/admin/media'
                 handler = AdminMediaHandler(WSGIHandler(), path)
-                run(addr, int(port), handler)
+                run(addr, int(port), handler, enable_ipv6=enable_ipv6)
             except WSGIServerException, e:
                 # Use helpful error messages instead of ugly tracebacks.
                 ERRORS = {
Index: docs/django-admin.txt
===================================================================
--- docs/django-admin.txt	(revision 7920)
+++ docs/django-admin.txt	(working copy)
@@ -498,7 +498,7 @@
 Note that the default IP address, 127.0.0.1, is not accessible from other
 machines on your network. To make your development server viewable to other
 machines on the network, use its own IP address (e.g. ``192.168.2.1``) or
-``0.0.0.0``.
+``0.0.0.0`` or ``::`` (with IPv6 enabled).
 
 --adminmedia
 ~~~~~~~~~~~~
@@ -524,6 +524,17 @@
 
     django-admin.py runserver --noreload
 
+--ipv6
+~~~~~~
+
+Use the ``--ipv6`` option to tell Django to enable IPv6 for the development
+server. This allows you to specify IPv6 addresses in colon-delimited form and
+changes the default IP address from 127.0.0.1 to ::1.
+
+Example usage::
+
+    django-admin.py runserver --ipv6
+
 Examples of using different ports and addresses
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -535,6 +546,10 @@
 
 	django-admin.py runserver 1.2.3.4:8000
 
+Port 8000 on IPv6 address 2001:0db8:1234:5678::9::
+
+	django-admin.py runserver --ipv6 2001:0db8:1234:5678::9:8000
+
 Port 7000 on IP address 127.0.0.1::
 
     django-admin.py runserver 7000
@@ -543,6 +558,10 @@
 
     django-admin.py runserver 1.2.3.4:7000
 
+Port 7000 on IPv6 address 2001:0db8:1234:5678::9::
+
+    django-admin.py runserver --ipv6 2001:0db8:1234:5678::9:7000
+
 Serving static files with the development server
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
