diff --git a/etc/controlDict b/etc/controlDict
index 912ad98538d1bce9701a51696428500b9a1168c8..3c5749e0564c0a1121da086d832df401dbf5fef7 100644
--- a/etc/controlDict
+++ b/etc/controlDict
@@ -81,13 +81,13 @@ OptimisationSwitches
 
     //- collated: thread buffer size for queued file writes.
     //  If set to 0 or not sufficient for the file size threading is not used.
-    //  Default: 2e9
-    maxThreadFileBufferSize 2e9;
+    //  Default: 1e9
+    maxThreadFileBufferSize 0;
 
     //- masterUncollated: non-blocking buffer size.
     //  If the file exceeds this buffer size scheduled transfer is used.
-    //  Default: 2e9
-    maxMasterFileBufferSize 2e9;
+    //  Default: 1e9
+    maxMasterFileBufferSize 1e9;
 
     commsType       nonBlocking; //scheduled; //blocking;
     floatTransfer   0;
diff --git a/src/Pstream/mpi/UPstream.C b/src/Pstream/mpi/UPstream.C
index 321ae90c4aa078694d334607747b58079dbf142d..e92cb32582bb77403960a3ff400a1b12cf9a0c78 100644
--- a/src/Pstream/mpi/UPstream.C
+++ b/src/Pstream/mpi/UPstream.C
@@ -30,6 +30,7 @@ License
 #include "SubList.H"
 #include "allReduce.H"
 #include "int.H"
+#include "collatedFileOperation.H"
 
 #include <mpi.h>
 
@@ -128,12 +129,17 @@ bool Foam::UPstream::init(int& argc, char**& argv)
 
 
     //MPI_Init(&argc, &argv);
+    int wanted_thread_support = MPI_THREAD_SINGLE;
+    if (fileOperations::collatedFileOperation::maxThreadFileBufferSize > 0)
+    {
+        wanted_thread_support = MPI_THREAD_MULTIPLE;
+    }
     int provided_thread_support;
     MPI_Init_thread
     (
         &argc,
         &argv,
-        MPI_THREAD_MULTIPLE,
+        wanted_thread_support,
         &provided_thread_support
     );