Index: setuptools/tests/test_packageindex.py
===================================================================
--- setuptools/tests/test_packageindex.py	(revision 62179)
+++ setuptools/tests/test_packageindex.py	(working copy)
@@ -17,3 +17,10 @@
             self.assert_(url in str(v))
         else:
             self.assert_(isinstance(v,urllib2.HTTPError))
+
+    def test_url_ok(self):
+        PI = setuptools.package_index.PackageIndex
+        index = PI(hosts=('www.example.com',))
+        url = 'file:///tmp/test_package_index'
+        self.assert_(index.url_ok(url, True))
+
Index: setuptools/package_index.py
===================================================================
--- setuptools/package_index.py	(revision 62179)
+++ setuptools/package_index.py	(working copy)
@@ -16,6 +16,7 @@
 )
 
 URL_SCHEME = re.compile('([-+.a-z0-9]{2,}):',re.I).match
+FILE_SCHEME = re.compile('file://',re.I).match
 EXTENSIONS = ".tar.gz .tar.bz2 .tar .zip .tgz".split()
 
 __all__ = [
@@ -220,6 +221,8 @@
             map(self.add, dists)
 
     def url_ok(self, url, fatal=False):
+        if FILE_SCHEME(url):
+            return True
         if self.allows(urlparse.urlparse(url)[1]):
             return True
         msg = "\nLink to % s ***BLOCKED*** by --allow-hosts\n"
