diff --git a/src/faction/faction.service.ts b/src/faction/faction.service.ts
index 3681a9404b3f4db704ceb12d50281481c6f01cc5..bcaf4af49583471f614cad9287d4130c5a67aadf 100644
--- a/src/faction/faction.service.ts
+++ b/src/faction/faction.service.ts
@@ -10,7 +10,6 @@ import {
   FactionDTO,
 } from './faction.dto';
 import { Game_PersonEntity } from '../game/game.entity';
-import { async } from 'rxjs/internal/scheduler/async';
 
 @Injectable()
 export class FactionService {
@@ -82,9 +81,15 @@ export class FactionService {
       where: { gamepersonId },
     });
     if (gameperson) {
-      const factionleader = await this.game_PersonRepository.create(gameperson);
-      factionleader.role = body.role;
-      return await this.game_PersonRepository.save(factionleader);
+      const promotedPlayer = await this.game_PersonRepository.create(
+        gameperson,
+      );
+      promotedPlayer.role = body.role;
+      if (body.role === 'admin') {
+        promotedPlayer.faction = null;
+        promotedPlayer.group = null;
+      }
+      return await this.game_PersonRepository.save(promotedPlayer);
     }
     throw new HttpException('player does not exist', HttpStatus.BAD_REQUEST);
   }