diff --git a/django/http/__init__.py b/django/http/__init__.py
index ef15479..e429696 100644
--- a/django/http/__init__.py
+++ b/django/http/__init__.py
@@ -1,4 +1,5 @@
 import os
+import re
 from Cookie import SimpleCookie, CookieError
 from pprint import pformat
 from urllib import urlencode
@@ -17,6 +18,7 @@ from django.core.files import uploadhandler
 from utils import *
 
 RESERVED_CHARS="!*'();:@&=+$,/?%#[]"
+ABS_URI_RE = re.compile('^https?:')
 
 class Http404(Exception):
     pass
@@ -75,7 +77,7 @@ class HttpRequest(object):
         """
         if not location:
             location = self.get_full_path()
-        if not ':' in location:
+        if not ABS_URI_RE.match(location):
             current_uri = '%s://%s%s' % (self.is_secure() and 'https' or 'http',
                                          self.get_host(), self.path)
             location = urljoin(current_uri, location)
