 
       iterator = (remote, nextDownload) =>
         local = hash[remote]
-        dir   = _path.resolve('./dist', _path.dirname(local))
+        dir   = _path.resolve('.#{_path.sep}dist', _path.dirname(local))
 
         wrench.mkdirSyncRecursive(dir)
 
         agent.get(remote).end (response) =>
           #writeStream.write(response.text) if writeStream
 
-          path = "./dist/#{local}"
+          path = ".#{_path.sep}dist#{_path.sep}#{local}"
           fs.writeFile path, response.text, =>
             process.nextTick nextDownload
 

        ""

    buildIt = ->
      fs.mkdirSync('./dist') unless fs.existsSync('./dist')
      content = compileFile("./packages/tower", "./packages/tower/client.coffee", 0).replace /Tower\.version *= *.+\n/g, (_) ->
        version = """
    Tower.version = "#{grunt.config('pkg.version')}"

    """
      fs.writeFileSync './dist/tower.coffee', content
      mint.coffee content, bare: false, (error, result) ->
        result = grunt.config.process('meta.banner') + result
        console.error error.stack if error
        fs.writeFileSync "./dist/tower.js", result

    buildIt()

      iterator = (remote, nextDownload) =>
        local = hash[remote]
        path = ".#{_path.sep}dist#{_path.sep}#{local}"
        grunt.helper 'upload2GitHub', path, local, nextUpload

      Tower.async keys, iterator, next
