diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
index d69ac989ad92813cd1b93a1469f666aa540d3a71..dd54de718ac14619f3ee231427bc5a22a3828148 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
@@ -540,23 +540,7 @@ Foam::vector Foam::fieldValues::faceSource::processValues
         case opSumDirection:
         {
             const vector direction(dict_.lookup("direction"));
-
-            vector v(vector::zero);
-
-            forAll(Sf, i)
-            {
-                scalar d = Sf[i] & direction;
-                if (d > 0)
-                {
-                    v += pos(values[i] & direction)*values[i];
-                }
-                else
-                {
-                    v += neg(values[i] & direction)*values[i];
-                }
-            }
-
-            return v;
+            return sum(pos(values & direction)*values);
         }
         case opAreaNormalAverage:
         {