diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C
index 118c60e9f2cd367e3b493a31ba36e86e5c8d3345..2ddcae501a8862850c7baa6f2db65201759d1508 100644
--- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C
+++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C
@@ -105,12 +105,20 @@ leastSquaresFaGrad<Type>::calcGrad
     {
         const faPatchField<Type>& bf = vsf.boundaryField()[patchi];
 
-        const Field<Type>& vsfp =
+        //const Field<Type>& vsfp =
+        //(
+        //    bf.coupled()
+        //  ? bf.patchNeighbourField().cref()
+        //  : const_cast<faPatchField<Type>&>(bf)
+        //);
+
+        const tmp<Field<Type>> tvsfp
         (
             bf.coupled()
-          ? bf.patchNeighbourField().cref()
-          : const_cast<faPatchField<Type>&>(bf)
+          ? bf.patchNeighbourField()
+          : bf
         );
+        const Field<Type>& vsfp = tvsfp();
 
         const faePatchVectorField& ownLsp = ownLs.boundaryField()[patchi];
         const labelUList& edgeFaces =