         do {
             try routeResp.sendFile(resourceFileName)
             routeResp.status(HttpStatusCode.OK)
+            try routeResp.end()
         }
         catch {
             // Fail silently

        let routeResp = RouterResponse(response: response, router: self, request: routeReq)

        let urlPath = routeReq.parsedUrl.path!
        var elemIndex = -1

        // Extra variable to get around use of variable in its own initializer
        var callback: (()->Void)? = nil

        let callbackHandler = {[unowned routeReq, unowned routeResp] () -> Void in
            elemIndex+=1
            if  elemIndex < self.routeElems.count {
                self.routeElems[elemIndex].process(urlPath, request: routeReq, response: routeResp, next: callback!)
            }
            else {
                do {
                    if  !routeResp.invokedEnd {
                        if  response.statusCode == HttpStatusCode.NOT_FOUND  {
                            self.sendDefaultResponse(routeReq, routeResp: routeResp)
                        }
                        try routeResp.end()
                    }
                }
                catch {
                    // Not much to do here
                    Log.error("Failed to send response to the client")
                }
            }
        }
        callback = callbackHandler

        callbackHandler()
    }

    ///

            sendResourceIfExisting(routeResp, resource: "index.html")
        }
        else {
            do {
                try routeResp.status(HttpStatusCode.NOT_FOUND).send("Cannot \(String(routeReq.method).uppercaseString) \(routeReq.parsedUrl.path!).").end()
            }
            catch {}
        }
    }

