       return
 
     # Parse the remaining URL components
-    treeAndPath = treePathRegexp.exec(nodeReq.url[(@httpRoot.length)..])
+    decodedPath = decodeURIComponent(fullPath[(@httpRoot.length)..])
+    treeAndPath = treePathRegexp.exec(decodedPath)
 
     [unused, @tree, @path] = treeAndPath if treeAndPath
 

# Captures the tree and repo path from a request path
treePathRegexp = /^([^\/]+)\/(.+)$/


  @path = null

  constructor: (config, nodeReq) ->
    # Ignore the query
    fullPath = url.parse(nodeReq.url).pathname

    # Find the repo we're requesting
    for httpRoot, repo of config.repos
      # Don't do this in the regexp because escaping is annoying
      if fullPath.indexOf(httpRoot) == 0
        @repo = repo
        @httpRoot = httpRoot
        break
