Index: management.py
===================================================================
--- management.py	(revision 262)
+++ management.py	(working copy)
@@ -417,26 +417,30 @@
 
 def runserver(port):
     "Starts a lightweight Web server for development."
-    from django.core.servers.basehttp import run, WSGIServerException
-    from django.core.handlers.wsgi import AdminMediaHandler, WSGIHandler
-    from django.conf.settings import SETTINGS_MODULE
-    if not port.isdigit():
-        sys.stderr.write("Error: %r is not a valid port number.\n" % port)
-        sys.exit(1)
-    print "Starting server on port %s with settings module %r." % (port, SETTINGS_MODULE)
-    print "Go to http://127.0.0.1:%s/ for Django." % port
-    try:
-        run(int(port), AdminMediaHandler(WSGIHandler()))
-    except WSGIServerException, e:
-        # Use helpful error messages instead of ugly tracebacks.
-        ERRORS = {
-            13: "You don't have permission to access that port.",
-            98: "That port is already in use.",
-        }
+    def run():
+        from django.core.servers.basehttp import run, WSGIServerException
+        from django.core.handlers.wsgi import AdminMediaHandler, WSGIHandler
+        from django.conf.settings import SETTINGS_MODULE
+        if not port.isdigit():
+            sys.stderr.write("Error: %r is not a valid port number.\n" % port)
+            sys.exit(1)
+        print "Starting server on port %s with settings module %r." % (port, SETTINGS_MODULE)
+        print "Go to http://127.0.0.1:%s/ for Django." % port
         try:
-            error_text = ERRORS[e.args[0].args[0]]
-        except (AttributeError, KeyError):
-            error_text = str(e)
-        sys.stderr.write("Error: %s\n" % error_text)
-        sys.exit(1)
+            run(int(port), AdminMediaHandler(WSGIHandler()))
+        except WSGIServerException, e:
+            # Use helpful error messages instead of ugly tracebacks.
+            ERRORS = {
+                13: "You don't have permission to access that port.",
+                98: "That port is already in use.",
+            }
+            try:
+                error_text = ERRORS[e.args[0].args[0]]
+            except (AttributeError, KeyError):
+                error_text = str(e)
+            sys.stderr.write("Error: %s\n" % error_text)
+            sys.exit(1)
+    from django.utils import autoreload
+    autoreload.main(run)
+
 runserver.args = '[optional port number]'
