diff --git a/authority/server/run.js b/authority/server/run.js
index 9117e02873697d01fc98eedabb290c575f2050ac..9b214a9737144603e812cfe75cad1b7085f0684a 100644
--- a/authority/server/run.js
+++ b/authority/server/run.js
@@ -10,7 +10,7 @@ exports.handler = function(request, response, serveFile) {
   var urlpath = url.parse(request.url).pathname;
 
   if (urlpath === '/sign_in') {
-    serveFile(path.join(STATIC_DIR, "dialog", "index.html"));
+    serveFile(path.join(STATIC_DIR, "dialog", "index.html"), response);
   } else if (/^\/wsapi\/\w+$/.test(urlpath)) {
     try {
       var method = path.basename(urlpath);
@@ -22,6 +22,6 @@ exports.handler = function(request, response, serveFile) {
     }
   } else {
     // node.js takes care of sanitizing the request path
-    serveFile(path.join(STATIC_DIR, urlpath));
+    serveFile(path.join(STATIC_DIR, urlpath), response);
   }
 };
diff --git a/run.js b/run.js
index fac8dc7b7d13b1f035344296497646ece179fb8b..f23001ba91014744241308cdc21af3e6e592329d 100644
--- a/run.js
+++ b/run.js
@@ -1,10 +1,11 @@
 // a little node webserver designed to run the unit tests herein
 
-var sys = require("sys"),
-http = require("http"),
-url = require("url"),
-path = require("path"),
-fs = require("fs");
+var   sys = require("sys"),
+     http = require("http"),
+      url = require("url"),
+     path = require("path"),
+       fs = require("fs"),
+  connect = require("connect");
 
 var PRIMARY_HOST = "127.0.0.1";
 
@@ -31,118 +32,78 @@ function getServerByName(name) {
   return undefined;
 }
 
-function fourOhFour(resp, reason) {
-  resp.writeHead(404, {"Content-Type": "text/plain"});
-  resp.write("404 Not Found");
-  if (reason) {
-    resp.write(": " + reason);
-  }
-  resp.end();
-  return undefined;
-}
-
-function createServer(port) {
-  var myserver = http.createServer(function(request, response) {
-    var hostname = request.headers['host'].toString("utf8");
-    var port = parseInt(hostname.split(':')[1]);
-    var host = hostname.split(':')[0];
-
-    // normalize 'localhost', so it just works.
-    if (host === 'localhost') {
-      var redirectURL = "http://127.0.0.1:" + port + request.url;
-      response.writeHead(302, {"Location": redirectURL});
+function serveFile(filename, response) {
+  path.exists(filename, function(exists) {
+    if(!exists) {
+      response.writeHead(404, {"Content-Type": "text/plain"});
+      response.write("404 Not Found");
       response.end();
       return;
     }
 
-    // get the directory associated with the port hit by client
-    var site = getSiteRef(host, port);
-
-    // unknown site?  really?
-    if (!site.root) return fourOhFour(response, "No site on this port");
-
-    var serveFile = function (filename) {
-      path.exists(filename, function(exists) {
-        if(!exists) {
-          response.writeHead(404, {"Content-Type": "text/plain"});
-          response.write("404 Not Found");
-          response.end();
-          sys.puts("404 " + filename);
-          return;
-        }
-
-        fs.readFile(filename, "binary", function(err, data) {
-          if(err) {
-            response.writeHead(500, {"Content-Type": "text/plain"});
-            response.write(err + "\n");
-            response.end();
-            sys.puts("500 " + filename);
-            return;
-          }
-
-          var exts = {
-            ".js":   "text/javascript",
-            ".css":  "text/css",
-            ".html": "text/html",
-            ".webapp": "application/x-web-app-manifest+json",
-            ".png": "image/png",
-            ".ico": "image/x-icon"
-          };
-
-          var ext = path.extname(filename);
-          var mimeType = exts[ext] || "application/octet-stream";
-
-          for (var i = 0; i < boundServers.length; i++) {
-            var o = boundServers[i]
-            var a = o.server.address();
-            var from = o.name + ".mozilla.org";
-            var to = a.address + ":" + a.port;
-            data = data.replace(from, to);
-          }
-
-          response.writeHead(200, {"Content-Type": mimeType});
-          response.write(data, "binary");
-          response.end();
-          sys.puts("200 " + filename);
-        });
-      });
-    };
+    fs.readFile(filename, "binary", function(err, data) {
+      if(err) {
+        response.writeHead(500, {"Content-Type": "text/plain"});
+        response.write(err + "\n");
+        response.end();
+        return;
+      }
 
+      var exts = {
+        ".js":   "text/javascript",
+        ".css":  "text/css",
+        ".html": "text/html",
+        ".webapp": "application/x-web-app-manifest+json",
+        ".png": "image/png",
+        ".ico": "image/x-icon"
+      };
 
-    function serveFileIndex(filename) {
-      // automatically serve index.html if this is a directory
-      fs.stat(filename, function(err, s) {
-        if (err === null && s.isDirectory()) {
-          serveFile(path.join(filename, "index.html"));
-        } else {
-          serveFile(filename);
-        }
-      });
-    }
+      var ext = path.extname(filename);
+      var mimeType = exts[ext] || "application/octet-stream";
 
-    // if this site has a handler, we'll run that, otherwise serve statically
-    if (site.handler) {
-      site.handler(request, response, serveFile);
-    } else {
-      var filename = path.join(site.root, url.parse(request.url).pathname);
-
-      if (site.root == __dirname) {
-        // We're layering two directories in this case
-        var otherPath = path.join(__dirname, '..', url.parse(request.url).pathname);
-        path.exists(otherPath, function(exists) {
-          if (exists) {
-            serveFileIndex(otherPath);
-          } else {
-            serveFileIndex(filename);
-          }
-        });
-      } else {
-        serveFileIndex(filename);
+      for (var i = 0; i < boundServers.length; i++) {
+        var o = boundServers[i]
+        var a = o.server.address();
+        var from = o.name + ".mozilla.org";
+        var to = a.address + ":" + a.port;
+        data = data.replace(from, to);
       }
+
+      response.writeHead(200, {"Content-Type": mimeType});
+      response.write(data, "binary");
+      response.end();
+    });
+  });
+}
+
+function serveFileIndex(filename, response) {
+  // automatically serve index.html if this is a directory
+  fs.stat(filename, function(err, s) {
+    if (err === null && s.isDirectory()) {
+      serveFile(path.join(filename, "index.html"), response);
+    } else {
+      serveFile(filename, response);
     }
   });
-  myserver.listen(port, PRIMARY_HOST);
-  return myserver;
+}
+
+function createServer(obj) {
+  var server = connect.createServer().use(connect.favicon())
+    .use(connect.logger({format: ":status :method :remote-addr :response-time :url"}));
+
+  // if this site has a handler, we'll run that, otherwise serve statically
+  if (obj.handler) {
+    server.use(function(req, resp, next) {
+      obj.handler(req, resp, serveFile);
+    });
+  } else {
+    server.use(function(req, resp, next) {
+      var filename = path.join(obj.path, url.parse(req.url).pathname);
+      serveFileIndex(filename, resp);
+    });
+  }
+  server.listen(obj.port, PRIMARY_HOST);
+  return server;
 };
 
 // start up webservers on ephemeral ports for each subdirectory here.
@@ -153,11 +114,8 @@ var dirs = [ "authority", "rp" ].map(function(d) {
     };
 });
 
-function formatLink(nameOrServer, extraPath) {
-  if (typeof nameOrServer == 'string') {
-    nameOrServer = getServerByName(nameOrServer).server;
-  }
-  var addr = nameOrServer.address();
+function formatLink(server, extraPath) {
+  var addr = server.address();
   var url = 'http://' + addr.address + ':' + addr.port;
   if (extraPath) {
     url += extraPath;
@@ -177,11 +135,14 @@ dirs.forEach(function(dirObj) {
   } catch(e) {
   }
 
-  boundServers.push({
+  var so = {
     path: dirObj.path,
-    server: createServer(0),
+    server: undefined,
+    port: "0",
     name: dirObj.name,
     handler: handler
-  });
-  console.log("  " + dirObj.name + ": " + formatLink(dirObj.name));
+  };
+  so.server = createServer(so)
+  boundServers.push(so);
+  console.log("  " + dirObj.name + ": " + formatLink(so.server));
 });