diff --git a/dumux/decoupled/common/fv/fvpressure.hh b/dumux/decoupled/common/fv/fvpressure.hh
index 5e9a809217f540d371e9f602a1e5bb52c5351b72..cfa465d8e552c03d39090eeb38f296780127cd50 100644
--- a/dumux/decoupled/common/fv/fvpressure.hh
+++ b/dumux/decoupled/common/fv/fvpressure.hh
@@ -97,6 +97,9 @@ protected:
 
     //!Initialize the global matrix of the system of equations to solve
     void initializeMatrix();
+    void initializeMatrixRowSize();
+    void initializeMatrixIndices();
+
 
     /*!\brief Function which assembles the system of equations to be solved
      *
@@ -321,6 +324,16 @@ private:
 //!Initialize the global matrix of the system of equations to solve
 template<class TypeTag>
 void FVPressure<TypeTag>::initializeMatrix()
+{
+	initializeMatrixRowSize();
+    A_.endrowsizes();
+	initializeMatrixIndices();
+    A_.endindices();
+}
+
+//!Initialize the global matrix of the system of equations to solve
+template<class TypeTag>
+void FVPressure<TypeTag>::initializeMatrixRowSize()
 {
     // determine matrix row sizes
     ElementIterator eItEnd = problem_.gridView().template end<0>();
@@ -341,9 +354,16 @@ void FVPressure<TypeTag>::initializeMatrix()
         }
         A_.setrowsize(globalIdxI, rowSize);
     }
-    A_.endrowsizes();
 
+    return;
+}
+
+//!Initialize the global matrix of the system of equations to solve
+template<class TypeTag>
+void FVPressure<TypeTag>::initializeMatrixIndices()
+{
     // determine position of matrix entries
+    ElementIterator eItEnd = problem_.gridView().template end<0>();
     for (ElementIterator eIt = problem_.gridView().template begin<0>(); eIt != eItEnd; ++eIt)
     {
         // cell index
@@ -365,11 +385,11 @@ void FVPressure<TypeTag>::initializeMatrix()
                 A_.addindex(globalIdxI, globalIdxJ);
             }
     }
-    A_.endindices();
 
     return;
 }
 
+
 /*!\brief Function which assembles the system of equations to be solved
  *
  *  This function assembles the Matrix and the right hand side (RHS) vector to solve for