diff --git a/Solver/linearSystemPETSc.cpp b/Solver/linearSystemPETSc.cpp
index 461199370999d792171770bbf730a761ffd7fde9..dad32f072100b375577f7b3fab599b8bbc2167cc 100644
--- a/Solver/linearSystemPETSc.cpp
+++ b/Solver/linearSystemPETSc.cpp
@@ -206,10 +206,8 @@ int linearSystemPETScBlockDouble::systemSolve()
     KSPSetOperators(_ksp, _a, _a, SAME_NONZERO_PATTERN);
   else
     KSPSetOperators(_ksp, _a, _a, DIFFERENT_NONZERO_PATTERN);
-  if (_matrixModified && _parameters["matrix_reuse"]!="same_matrix"){
-    MatAssemblyBegin(_a, MAT_FINAL_ASSEMBLY);
-    MatAssemblyEnd(_a, MAT_FINAL_ASSEMBLY);
-  }
+  MatAssemblyBegin(_a, MAT_FINAL_ASSEMBLY);
+  MatAssemblyEnd(_a, MAT_FINAL_ASSEMBLY);
   _matrixModified=false;
   VecAssemblyBegin(_b);
   VecAssemblyEnd(_b);
diff --git a/Solver/linearSystemPETSc.hpp b/Solver/linearSystemPETSc.hpp
index 7c525816067dfc10f6fc1025633f4a2c9472fb62..4505e6ae5e01e944aa219f8acabbd328f66952a3 100644
--- a/Solver/linearSystemPETSc.hpp
+++ b/Solver/linearSystemPETSc.hpp
@@ -280,10 +280,8 @@ int linearSystemPETSc<scalar>::systemSolve()
     _try(KSPSetOperators(_ksp, _a, _a, SAME_NONZERO_PATTERN));
   else
     _try(KSPSetOperators(_ksp, _a, _a, DIFFERENT_NONZERO_PATTERN));
-  if (_matrixModified && linearSystem<scalar>::_parameters["matrix_reuse"]!="same_matrix"){
-    _try(MatAssemblyBegin(_a, MAT_FINAL_ASSEMBLY));
-    _try(MatAssemblyEnd(_a, MAT_FINAL_ASSEMBLY));
-  }
+  _try(MatAssemblyBegin(_a, MAT_FINAL_ASSEMBLY));
+  _try(MatAssemblyEnd(_a, MAT_FINAL_ASSEMBLY));
   _matrixModified=false;
   /*MatInfo info;
     MatGetInfo(_a, MAT_LOCAL, &info);