diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
index a235ab024c98e7c2dd6916701f931b3bca549742..d6b54a00778e06f0c71361f7578071df4e49928b 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C
@@ -162,11 +162,15 @@ void surfaceInterpolation::makeWeights() const
 
 
     // Set local references to mesh data
-    const surfaceVectorField& Cf = mesh_.Cf();
-    const volVectorField& C = mesh_.C();
+    // (note that we should not use fvMesh sliced fields at this point yet
+    //  since this causes a loop when generating weighting factors in
+    //  coupledFvPatchField evaluation phase)
     const unallocLabelList& owner = mesh_.owner();
     const unallocLabelList& neighbour = mesh_.neighbour();
-    const surfaceVectorField& Sf = mesh_.Sf();
+
+    const vectorField& Cf = mesh_.faceCentres();
+    const vectorField& C = mesh_.cellCentres();
+    const vectorField& Sf = mesh_.faceAreas();
 
     // ... and reference to the internal field of the weighting factors
     scalarField& w = weightingFactors.internalField();