                 if err
                     opts.cb?(err)
                 else if not server_id?
-                    opts.cb?() # not running anywhere -- nothing to save
-                else
-                    @_stop_all([server_id])
-                    opts.cb?()
+                    opts.cb?() # not running anywhere -- nothing to stop
+                else
+                    @project
+                        server_id : server_id
+                        cb        : (err, project) =>
+                            if err
+                                opts.cb?(err)
+                            else
+                                project.stop
+                                    force : opts.force
+                                    cb    : opts.cb
 
     # change the location preference for the next start, and attempts to stop
     # if running somewhere now.

            cb     : undefined
        dbg = (m) -> winston.debug("GlobalProject.move(#{@project_id}): #{m}")
        dbg()
        async.series([
            (cb) =>
                if opts.target?
                    dbg("set next open location preference -- target=#{opts.target}")
                    @set_location_pref(opts.target, cb)
                else
                    cb()
            (cb) =>
                @get_host_where_running
                    cb : (err, server_id) =>
                        if err
                            dbg("error determining info about running status -- #{err}")
                            cb(err)
                        else
                            @_next_start_avoid = server_id
                            if server_id?
                                # next start will happen on new machine...
                                @stop
                                    cb: (err) =>
                                        dbg("non-fatal error stopping -- expected given that move is used when host is down -- #{err}")
                                        cb()
                            else
                                cb()
        ], (err) =>
            dbg("move completed -- #{err}")
            opts.cb?(err)

                    v = (server_id for server_id, s of state when s not in ['error'])
                    if v.length == 0
                        v = misc.keys(state)
                    if target? and target in v
                        dbg("use requested target = #{target}")
                        server_id = target
                        cb()
                    else
