diff --git a/src/gamecode/economy.c b/src/gamecode/economy.c index dd417fcf4..32c7e1182 100644 --- a/src/gamecode/economy.c +++ b/src/gamecode/economy.c @@ -638,6 +638,9 @@ static void give_control(unit * u, unit * u2) } } } + if (u->ship) { + u->ship->owner = u2; + } freset(u, UFL_OWNER); fset(u2, UFL_OWNER); } diff --git a/src/kernel/unit.c b/src/kernel/unit.c index 58dba10df..820aef050 100644 --- a/src/kernel/unit.c +++ b/src/kernel/unit.c @@ -812,6 +812,7 @@ void leave_ship(unit * u) fset(owner, UFL_OWNER); } } + assert(sh->owner!=u); } void leave_building(unit * u)