Index: django/forms/fields.py
===================================================================
--- django/forms/fields.py	(revision 9084)
+++ django/forms/fields.py	(working copy)
@@ -526,12 +526,7 @@
         return f
 
 url_re = re.compile(
-    r'^https?://' # http:// or https://
-    r'(?:(?:[A-Z0-9-]+\.)+[A-Z]{2,6}|' #domain...
-    r'localhost|' #localhost...
-    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
-    r'(?::\d+)?' # optional port
-    r'(?:/?|/\S+)$', re.IGNORECASE)
+    r'^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?', re.IGNORECASE)
 
 class URLField(RegexField):
     default_error_messages = {
