                     max_delay   : 7000
                     cb          : cb
         ], (err) =>
-            @_done()
+            @active()
             opts.cb(err, content)
         )
 

        copy_id = misc.uuid()
        dbg = @dbg("copy_path('#{opts.path}', id='#{copy_id}')")
        dbg("copy a path using rsync from one project to another")
        @_task()
        async.series([
            (cb) =>
                dbg("get synctable")
                @client.copy_paths_synctable (err, s) =>
                    synctable = s; cb(err)
            (cb) =>
                dbg('write query requesting the copy to the database')
                @database._query
                    query  : "INSERT INTO copy_paths"

        dbg = @dbg('constructor')
        dbg("initializing")

        # We debounce the free function (which cleans everything up).
        # Every time we're doing something, we call @active();
        # once we DON'T call it for a few minutes, the project
        # is **then** freed, because that's how debounce works.
        @active = underscore.debounce(@free, 10*60*1000)
        @active()
        @database.synctable
            table          : 'projects'
            columns        : ['state', 'status', 'action_request']
