diff --git a/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.H b/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.H
index ba223f7aebce6dc18db3dd3f0563d65bbfbd6a07..891da11fd5676d272393e2a6e98919f1edf3ece8 100644
--- a/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.H
+++ b/src/OpenFOAM/fields/Fields/symmTransformField/symmTransformField.H
@@ -38,6 +38,7 @@ SourceFiles
 
 #include "symmTransform.H"
 #include "symmTensorField.H"
+#include "sphericalTensor.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.C b/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.C
index 8ab8e646c1414b77ba4991a5d290d1bd6f6f769b..a41fbf5f520668e0e5360d3cb40853e8389e97ce 100644
--- a/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.C
+++ b/src/OpenFOAM/fields/pointPatchFields/basic/basicSymmetry/basicSymmetryPointPatchField.C
@@ -26,6 +26,7 @@ License
 
 #include "basicSymmetryPointPatchField.H"
 #include "transformField.H"
+#include "symmTransformField.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -89,7 +90,12 @@ void basicSymmetryPointPatchField<Type>::evaluate(const Pstream::commsTypes)
     const vectorField& nHat = this->patch().pointNormals();
 
     tmp<Field<Type> > tvalues =
-        transform(I - nHat*nHat, this->patchInternalField());
+    (
+        (
+            this->patchInternalField()
+          + transform(I - 2.0*sqr(nHat), this->patchInternalField())
+        )/2.0
+    );
 
     // Get internal field to insert values into
     Field<Type>& iF = const_cast<Field<Type>&>(this->internalField());
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.C
index 2595f36d784c4d2a6049bdcc93b0e2dc0aca29c3..43d4bcd941e4b6a7495f4e65bf5674d593aee02b 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.C
@@ -95,11 +95,11 @@ basicSymmetryFvPatchField<Type>::basicSymmetryFvPatchField
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-// return gradient at boundary
 template<class Type>
 tmp<Field<Type> > basicSymmetryFvPatchField<Type>::snGrad() const
 {
     vectorField nHat = this->patch().nf();
+
     return
     (
         transform(I - 2.0*sqr(nHat), this->patchInternalField())
@@ -108,7 +108,6 @@ tmp<Field<Type> > basicSymmetryFvPatchField<Type>::snGrad() const
 }
 
 
-// Evaluate the field on the patch
 template<class Type>
 void basicSymmetryFvPatchField<Type>::evaluate(const Pstream::commsTypes)
 {
@@ -118,6 +117,7 @@ void basicSymmetryFvPatchField<Type>::evaluate(const Pstream::commsTypes)
     }
 
     vectorField nHat = this->patch().nf();
+
     Field<Type>::operator=
     (
         (
@@ -130,11 +130,11 @@ void basicSymmetryFvPatchField<Type>::evaluate(const Pstream::commsTypes)
 }
 
 
-// Return defining fields
 template<class Type>
 tmp<Field<Type> > basicSymmetryFvPatchField<Type>::snGradTransformDiag() const
 {
     vectorField nHat = this->patch().nf();
+
     vectorField diag(nHat.size());
 
     diag.replace(vector::X, mag(nHat.component(vector::X)));