Index: django/newforms/fields.py
===================================================================
--- django/newforms/fields.py	(revision 6000)
+++ django/newforms/fields.py	(working copy)
@@ -337,7 +337,8 @@
 
 url_re = re.compile(
     r'^https?://' # http:// or https://
-    r'(?:[A-Z0-9-]+\.)+[A-Z]{2,6}' # domain
+    r'(?:(?:[A-Z0-9-]+\.)+[A-Z]{2,6}|' #domain...
+    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
     r'(?::\d+)?' # optional port
     r'(?:/?|/\S+)$', re.IGNORECASE)
 
Index: tests/regressiontests/forms/tests.py
===================================================================
--- tests/regressiontests/forms/tests.py	(revision 6000)
+++ tests/regressiontests/forms/tests.py	(working copy)
@@ -1585,6 +1585,12 @@
 u'http://example.com'
 >>> f.clean('http://www.example.com')
 u'http://www.example.com'
+>>> f.clean('http://www.example.com:8000/test')
+u'http://www.example.com:8000/test'
+>>> f.clean('http://200.8.9.10')
+u'http://200.8.9.10'
+>>> f.clean('http://200.8.9.10:8000/test')
+u'http://200.8.9.10:8000/test'
 >>> f.clean('foo')
 Traceback (most recent call last):
 ...
