diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C
index be7fb428e6721b8f6be140decae702995972ceef..76b50be88f1f2db7fb6394c99ec4438b76562820 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceTemplates.C
@@ -314,19 +314,22 @@ bool Foam::fieldValues::faceSource::writeValues(const word& fieldName)
                 combineMeshGeometry(faces, points);
             }
 
-            fileName outputDir =
-                baseFileDir()/name_/"surface"/obr_.time().timeName();
+            if (Pstream::master())
+            {
+                fileName outputDir =
+                    baseFileDir()/name_/"surface"/obr_.time().timeName();
 
-            surfaceWriterPtr_->write
-            (
-                outputDir,
-                word(sourceTypeNames_[source_]) + "_" + sourceName_,
-                points,
-                faces,
-                fieldName,
-                values,
-                false
-            );
+                surfaceWriterPtr_->write
+                (
+                    outputDir,
+                    word(sourceTypeNames_[source_]) + "_" + sourceName_,
+                    points,
+                    faces,
+                    fieldName,
+                    values,
+                    false
+                );
+            }
         }
 
         // apply scale factor and weight field