diff --git a/src/app/shared/components/signin-modal/signin-modal.component.html b/src/app/shared/components/signin-modal/signin-modal.component.html
index c4e3795c381a442a558f2a62d2e810f2d996f8d9..4d0b4c3de3b555027d9551d422bd871fd372abda 100644
--- a/src/app/shared/components/signin-modal/signin-modal.component.html
+++ b/src/app/shared/components/signin-modal/signin-modal.component.html
@@ -30,7 +30,7 @@
           />
           <div *ngIf="submitted && f.password.errors" class="invalid-feedback">
             <div *ngIf="f.password.errors.required">Le mot de passe est obligatoire</div>
-            <div *ngIf="f.password.errors.minlength">
+            <div *ngIf="f.password.errors.pattern">
               Le mot de passe doit avoir au minimun 8 caractères, une majuscule, une minuscule, un chiffre et un
               caractère spécial.
             </div>
@@ -46,10 +46,12 @@
             [ngClass]="{ 'is-invalid': submitted && f.confirmPassword.errors }"
           />
           <div *ngIf="submitted && f.confirmPassword.errors" class="invalid-feedback">
-            <div *ngIf="f.confirmPassword.errors.required">Le mot de passe est obligatoire</div>
+            <div *ngIf="f.confirmPassword.errors.required">La confirmation du mot de passe est obligatoire</div>
             <div *ngIf="f.confirmPassword.errors.mustMatch">Les mot de passe ne sont pas les mêmes</div>
           </div>
         </div>
+
+        <div *ngIf="userAlreadyExist">Cette addresse mail est déjà utilisée</div>
         <div class="form-group">
           <button [disabled]="loading" class="btn btn-primary">
             <span *ngIf="loading" class="spinner-border spinner-border-sm mr-1"></span>
diff --git a/src/app/shared/components/signin-modal/signin-modal.component.ts b/src/app/shared/components/signin-modal/signin-modal.component.ts
index 10acd554cb8dab8dd26a498c36c1dc6f8d0f6b90..33996e5030bb236e9e06de86d680cb4c68b46b84 100644
--- a/src/app/shared/components/signin-modal/signin-modal.component.ts
+++ b/src/app/shared/components/signin-modal/signin-modal.component.ts
@@ -14,6 +14,7 @@ export class SignInModalComponent implements OnInit {
   public loading = false;
   public submitted = false;
   public success = false;
+  public userAlreadyExist = false;
 
   constructor(private formBuilder: FormBuilder, private authService: AuthService) {}
 
@@ -24,7 +25,10 @@ export class SignInModalComponent implements OnInit {
     this.form = this.formBuilder.group(
       {
         email: ['', Validators.required],
-        password: ['', [Validators.required, Validators.minLength(8)]],
+        password: [
+          '',
+          [Validators.required, Validators.pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/)],
+        ],
         confirmPassword: ['', [Validators.required, Validators.minLength(8)]],
       },
       { validator: MustMatch('password', 'confirmPassword') }
@@ -53,11 +57,14 @@ export class SignInModalComponent implements OnInit {
       .register(this.form.value)
       .pipe(first())
       .subscribe(
-        (data) => {
+        () => {
           this.success = true;
         },
         (error) => {
           this.loading = false;
+          if (error.error.statusCode === 400) {
+            this.userAlreadyExist = true;
+          }
         }
       );
   }
diff --git a/src/app/shared/validator/form.ts b/src/app/shared/validator/form.ts
index a909bf03f77680a69c11956cd8b537f755b1cdd5..1a1cc906def4e3e5fe38aef3e0dd61155f9a8b54 100644
--- a/src/app/shared/validator/form.ts
+++ b/src/app/shared/validator/form.ts
@@ -6,11 +6,6 @@ export function MustMatch(controlName: string, matchingControlName: string): any
     const control = formGroup.controls[controlName];
     const matchingControl = formGroup.controls[matchingControlName];
 
-    if (matchingControl.errors && !matchingControl.errors.mustMatch) {
-      // return if another validator has already found an error on the matchingControl
-      return;
-    }
-
     // set error on matchingControl if validation fails
     if (control.value !== matchingControl.value) {
       matchingControl.setErrors({ mustMatch: true });