diff --git a/src/main/java/ch/hepia/numeric/Matrix.java b/src/main/java/ch/hepia/numeric/Matrix.java
index 30b9c0a02a7400f29b6face06208c2330b0f777a..3809e962b5eca84bde4a6958d71fd65f33675e28 100644
--- a/src/main/java/ch/hepia/numeric/Matrix.java
+++ b/src/main/java/ch/hepia/numeric/Matrix.java
@@ -120,11 +120,11 @@ public class Matrix {
         } else {
             double tot = 0.0;
             for (int i = 0; i < this.nbCols();i++){
-                if (i+this.nbCols() % 2 == 0){
-                    tot += this.removed(i, 0).mul(this.get(i, 0)).det();
+                if (i % 2 == 0){
+                    tot += this.removed(i, 0).det() * this.get(i,0);
                 }
                 else{
-                    tot -= this.removed(i, 0).mul(this.get(i, 0)).det();
+                    tot += this.removed(i, 0).det() * this.get(i,0) * (-1.0);
                 }
             }
             return tot;
diff --git a/src/test/java/ch/hepia/numeric/AppTest.java b/src/test/java/ch/hepia/numeric/AppTest.java
index d7556325f83745a35e8b3b5d9cbdabd4df66df81..7c6b60a6e1a67b94a1c42ab417210631993d37a6 100644
--- a/src/test/java/ch/hepia/numeric/AppTest.java
+++ b/src/test/java/ch/hepia/numeric/AppTest.java
@@ -207,7 +207,11 @@ class VectorTest {
         lstVec.add(Vector.of(3.0,6.0,9.0));
         Matrix mat = Matrix.of(lstVec);
         assertEquals(mat.det(), 0.0);
-        
-        
+        lstVec = new ArrayList<>();
+        lstVec.add(Vector.of(1.0, 5.0, 9.0, 13.0));
+        lstVec.add(Vector.of(2.0, 6.0, 10.0, 14.0));
+        lstVec.add(Vector.of(3.0, 7.0, 11.0, 15.0));
+        lstVec.add(Vector.of(4.0,8.0,12.0, 16.0));
+        assertEquals(Matrix.of(lstVec).det(), 0.0);
     }
 }