diff --git a/AMDiS/src/parallel/PetscSolverFeti.cc b/AMDiS/src/parallel/PetscSolverFeti.cc
index 3110e99479a60243a4b25008c9e1d9871e089402..3dea37eff53cd6c29e399a36421eeb048a0ce03b 100644
--- a/AMDiS/src/parallel/PetscSolverFeti.cc
+++ b/AMDiS/src/parallel/PetscSolverFeti.cc
@@ -511,10 +511,9 @@ namespace AMDiS {
 
     MatCreateMPIAIJ(PETSC_COMM_WORLD,
 		    lagrangeMap.getRankDofs(feSpaces),
-		    //		    lagrangeMap[feSpace].nRankDofs * nComponents, 
-		    localDofMap[feSpace].nRankDofs * nComponents,
-		    lagrangeMap[feSpace].nOverallDofs * nComponents, 
-		    localDofMap[feSpace].nOverallDofs * nComponents,
+		    localDofMap.getRankDofs(feSpaces),
+		    lagrangeMap.getOverallDofs(feSpaces),
+		    localDofMap.getOverallDofs(feSpaces),	
 		    2, PETSC_NULL, 2, PETSC_NULL,
 		    &mat_lagrange);
 
@@ -964,12 +963,13 @@ namespace AMDiS {
 
     // === Create matrices for the FETI-DP method. ===
 
-    int nRowsRankB = localDofMap[feSpace].nRankDofs * nComponents;
-    int nRowsOverallB = localDofMap[feSpace].nOverallDofs * nComponents;
-    int nRowsRankPrimal = primalDofMap[feSpace].nRankDofs * nComponents;
-    int nRowsOverallPrimal = primalDofMap[feSpace].nOverallDofs * nComponents;
-    int nRowsInterior = nLocalInterior * nComponents;
-    int nRowsDual = dualDofMap[feSpace].size() * nComponents;
+    int nRowsRankB = localDofMap.getRankDofs(feSpaces);
+    int nRowsOverallB = localDofMap.getOverallDofs(feSpaces);
+    int nRowsRankPrimal = primalDofMap.getRankDofs(feSpaces);
+    int nRowsOverallPrimal = primalDofMap.getOverallDofs(feSpaces);
+    int nRowsDual = dualDofMap.getRankDofs(feSpaces);
+    int nRowsInterior = nRowsRankB - nRowsDual;
+
 
     MatCreateSeqAIJ(PETSC_COMM_SELF, nRowsRankB, nRowsRankB, 30, PETSC_NULL,
 		    &mat_b_b);
@@ -1087,7 +1087,8 @@ namespace AMDiS {
 	      // Column is not a primal variable.
 
 	      int colIndex = 
-		(localDofMap[feSpace][col(*icursor)] + localDofMap[feSpace].rStartDofs) * nComponents + j;
+		(localDofMap[feSpace][col(*icursor)] + 
+		 localDofMap[feSpace].rStartDofs) * nComponents + j;
 
 	      if (rowPrimal) {
 		colsOther.push_back(colIndex);