diff --git a/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh b/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh
index 18fe395c119bf7ce28c1781e1ad7569c161a4549..955707d348e8969a85544b2fbad74c6466892a37 100644
--- a/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh
+++ b/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh
@@ -115,6 +115,7 @@ class FVMPFAOPressure2P: public FVPressure<TypeTag>
     typedef Dune::FieldVector<Scalar, dim> FieldVector;
 
     //initializes the matrix to store the system of equations
+    friend class FVPressure<TypeTag>;
     void initializeMatrix();
 
     //function which assembles the system of equations to be solved
@@ -139,7 +140,7 @@ public:
 
     void initialize(bool solveTwice = true)
     {
-        initializeMatrix();
+        ParentType::initialize();
         updateMaterialLaws();
 
         assemble();
diff --git a/dumux/decoupled/2p/diffusion/mimetic/croperator.hh b/dumux/decoupled/2p/diffusion/mimetic/croperator.hh
index 3a590974c74691c29fa72d870d37689daccb183d..e643bc43c7eba5b277d7f6f6e52fb85d2551bd1f 100644
--- a/dumux/decoupled/2p/diffusion/mimetic/croperator.hh
+++ b/dumux/decoupled/2p/diffusion/mimetic/croperator.hh
@@ -149,7 +149,7 @@ public:
         faceMapper_.update();
         allMapper_.update();
 
-        A_.setSize(size(), size());
+        A_.setSize(size(), size(),  nnz(is_));
 
         assert(nnz(is_) != 0);
 
diff --git a/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh b/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh
index e0e462a0f1a8222840e5acb3d97da2220369dd39..06f344e6ca92012a2243f5460a11199f1aa84e81 100644
--- a/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh
+++ b/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh
@@ -314,13 +314,9 @@ void MimeticPressure2P<TypeTag>::updateMaterialLaws()
         //determine phase saturations from primary saturation variable
 
         Scalar satW = cellData.saturation(wPhaseIdx);
-        Scalar satNW = cellData.saturation(nPhaseIdx);
-
         Scalar pc = MaterialLaw::pC(problem_.spatialParameters().materialLawParams(*eIt), satW);
 
-            cellData.setSaturation(wPhaseIdx, satW);
-            cellData.setSaturation(nPhaseIdx, satNW);
-            cellData.setCapillaryPressure(pc);
+        cellData.setCapillaryPressure(pc);
 
         // initialize mobilities
         Scalar mobilityW = MaterialLaw::krw(problem_.spatialParameters().materialLawParams(*eIt), satW) / viscosity_[wPhaseIdx];
diff --git a/dumux/decoupled/common/fv/fvpressure.hh b/dumux/decoupled/common/fv/fvpressure.hh
index 3e1252ba88d49c9361939dad57da7e474e2a634e..d7adc8ba3de22bc4fe8a3a285656d4939e6948fe 100644
--- a/dumux/decoupled/common/fv/fvpressure.hh
+++ b/dumux/decoupled/common/fv/fvpressure.hh
@@ -174,7 +174,7 @@ public:
         A_.setSize(size_, size_);
         f_.resize(size_);
         pressure_.resize(size_);
-        initializeMatrix();// initialize sparse matrix
+        asImp_().initializeMatrix();// initialize sparse matrix
         pressure_ = 0;
     }