diff --git a/android/gradle.properties b/android/gradle.properties
index f0fcf6cdd8fc72bc76b35e7be0dc622b20c03b0f..408253ceb04c0c7c49b3b9daf597f35b66ce16c1 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.26
-app.versionCode=26
+app.versionName=0.0.27
+app.versionCode=27
diff --git a/fastlane/metadata/android/en-US/changelogs/27.txt b/fastlane/metadata/android/en-US/changelogs/27.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fb8f60c14e191801f5642b4545659ef0f1d03436
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/27.txt
@@ -0,0 +1 @@
+Fix display conflicts in board
diff --git a/fastlane/metadata/android/fr-FR/changelogs/27.txt b/fastlane/metadata/android/fr-FR/changelogs/27.txt
new file mode 100644
index 0000000000000000000000000000000000000000..32a34d5e0c390c4f2f1acad189c04eafa68ef0fd
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/27.txt
@@ -0,0 +1 @@
+Correction de l'affichage des conflits sur la grille
diff --git a/lib/entities/cell.dart b/lib/entities/cell.dart
index f8911de01c6e76945db1529dfe8926c8fd6bf738..f9213e94b2fb167359415530af72676b84201915 100644
--- a/lib/entities/cell.dart
+++ b/lib/entities/cell.dart
@@ -1,6 +1,7 @@
 import 'package:flutter/material.dart';
 
 import '../provider/data.dart';
+import '../utils/board_utils.dart';
 
 class Cell {
   int value;
@@ -103,6 +104,7 @@ class Cell {
             myProvider.updateCellValue(myProvider.currentCellCol, myProvider.currentCellRow, this.value);
           }
           myProvider.selectCell(null, null);
+          BoardUtils.computeConflictsInBoard(myProvider);
         },
       )
     );
diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart
index 2c9308406a396feb6cc7a6ed902a0c51c4af22ad..51520a91b2b9d29c59822fbeff4c90eb17a72cac 100644
--- a/lib/utils/board_utils.dart
+++ b/lib/utils/board_utils.dart
@@ -156,19 +156,36 @@ class BoardUtils {
 
     bool isSolved = true;
 
-    // reset conflict states
+    // (re)compute conflicts
+    BoardUtils.computeConflictsInBoard(myProvider);
+
+    // check grid is fully completed and does not contain conflict
     for (var row = 0; row < boardSize; row++) {
       for (var col = 0; col < boardSize; col++) {
-        cells[row][col].conflictsCount = 0;
+        if (cells[row][col].value == 0 || cells[row][col].conflictsCount != 0) {
+          return false;
+        }
       }
     }
 
-    // check grid is fully completed
+    print('-> ok sudoku solved!');
+
+    return true;
+  }
+
+
+  static void computeConflictsInBoard(Data myProvider) {
+    List cells = myProvider.cells;
+
+    int blockSizeHorizontal = myProvider.blockSizeHorizontal;
+    int blockSizeVertical = myProvider.blockSizeVertical;
+
+    int boardSize = blockSizeHorizontal * blockSizeVertical;
+
+    // reset conflict states
     for (var row = 0; row < boardSize; row++) {
       for (var col = 0; col < boardSize; col++) {
-        if (cells[row][col].value == 0) {
-          isSolved = false;
-        }
+        cells[row][col].conflictsCount = 0;
       }
     }
 
@@ -188,7 +205,6 @@ class BoardUtils {
         for (var col = 0; col < boardSize; col++) {
           cells[row][col].conflictsCount++;
         }
-        isSolved = false;
       }
     }
 
@@ -208,7 +224,6 @@ class BoardUtils {
         for (var row = 0; row < boardSize; row++) {
           cells[row][col].conflictsCount++;
         }
-        isSolved = false;
       }
     }
 
@@ -241,16 +256,9 @@ class BoardUtils {
               cells[row][col].conflictsCount++;
             }
           }
-          isSolved = false;
         }
       }
     }
-
-    if (isSolved) {
-      print('-> ok sudoku solved!');
-    }
-
-    return isSolved;
   }
 
 }