diff --git a/dumux/multidomain/subdomainfclocalassembler.hh b/dumux/multidomain/subdomainfclocalassembler.hh
index c7648a1b953b7c28b4c74d504cea4a2b2cf53ed6..dee0c4fa0768bbd5ae2fc718ccd852582b7b3446 100644
--- a/dumux/multidomain/subdomainfclocalassembler.hh
+++ b/dumux/multidomain/subdomainfclocalassembler.hh
@@ -388,10 +388,13 @@ public:
                             // For other dofs, add the contribution of the partial derivative.
                             for (int eqIdx = 0; eqIdx < numEq; ++eqIdx)
                             {
-                                if (bcTypes.isCouplingDirichlet(eqIdx))
-                                    A[scv.dofIndex()][globalJ][eqIdx][pvIdx] = partialDerivs[scv.localDofIndex()][eqIdx];
-                                else if (bcTypes.isDirichlet(eqIdx))
-                                    A[scv.dofIndex()][globalJ][eqIdx][pvIdx] = 0.0;
+                                for (int pvIdx = 0; pvIdx < GridView::dimension; ++pvIdx)
+                                {
+                                    if (bcTypes.isCouplingDirichlet(pvIdx) && pvIdx == scv.dofAxis()) // TODO?
+                                        A[scv.dofIndex()][globalJ][eqIdx][eqIdx] = partialDerivs[scv.localDofIndex()][eqIdx];
+                                    else if (bcTypes.isDirichlet(pvIdx) && pvIdx == scv.dofAxis())
+                                        A[scv.dofIndex()][globalJ][eqIdx][eqIdx] = 0.0;
+                                }
                             }
                         }
                     }