diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
index 7fe993522a7af4dbfdcea1d5bcdcacb87b8bc9ae..e4794b634b5a17b1f93936f1e2bf313b92d03d05 100644
--- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
+++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
@@ -945,6 +945,7 @@ void Foam::fvMeshDistribute::addProcPatches
                         Pstream::myProcNo(),
                         nbrProc[bFaceI]
                     );
+
                     procPatchID[procI].insert
                     (
                         referPatchID[bFaceI],
@@ -952,9 +953,9 @@ void Foam::fvMeshDistribute::addProcPatches
                         (
                             mesh_,
                             pp,
-                            dictionary(),
+                            dictionary(),   // optional per field patchField
                             processorFvPatchField<scalar>::typeName,
-                            false       // not parallel sync
+                            false           // not parallel sync
                         )
                     );
                 }
@@ -985,6 +986,7 @@ void Foam::fvMeshDistribute::addProcPatches
                         nbrProc[bFaceI],
                         cycName
                     );
+
                     procPatchID[procI].insert
                     (
                         referPatchID[bFaceI],
diff --git a/src/dynamicMesh/fvMeshTools/fvMeshTools.C b/src/dynamicMesh/fvMeshTools/fvMeshTools.C
index 08d3cdc014b7d2a1ba608ad8f4f8c2c246779962..682a96422e731eeb70ed7d4c1b8f6e9a3041c5ec 100644
--- a/src/dynamicMesh/fvMeshTools/fvMeshTools.C
+++ b/src/dynamicMesh/fvMeshTools/fvMeshTools.C
@@ -48,18 +48,22 @@ Foam::label Foam::fvMeshTools::addPatch
     }
 
 
+    // Append at end unless there are processor patches
     label insertPatchI = polyPatches.size();
     label startFaceI = mesh.nFaces();
 
-    forAll(polyPatches, patchI)
+    if (!isA<processorPolyPatch>(patch))
     {
-        const polyPatch& pp = polyPatches[patchI];
-
-        if (isA<processorPolyPatch>(pp))
+        forAll(polyPatches, patchI)
         {
-            insertPatchI = patchI;
-            startFaceI = pp.start();
-            break;
+            const polyPatch& pp = polyPatches[patchI];
+
+            if (isA<processorPolyPatch>(pp))
+            {
+                insertPatchI = patchI;
+                startFaceI = pp.start();
+                break;
+            }
         }
     }
 
diff --git a/src/dynamicMesh/fvMeshTools/fvMeshTools.H b/src/dynamicMesh/fvMeshTools/fvMeshTools.H
index a5d443fffda92f9d9e54e1870a357b94f79212b1..0e7e132d9c182df1ab76a0c67b663ad1babb3b63 100644
--- a/src/dynamicMesh/fvMeshTools/fvMeshTools.H
+++ b/src/dynamicMesh/fvMeshTools/fvMeshTools.H
@@ -36,7 +36,6 @@ SourceFiles
 #define fvMeshTools_H
 
 #include "fvMesh.H"
-//#include "HashSet.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -89,9 +88,10 @@ class fvMeshTools
 
 public:
 
-    //- Add patch. Supply per field the new patchField per field as a
+    //- Add patch. Inserts patch before all processor patches.
+    //  Supply per field the new patchField per field as a
     //  subdictionary or a default type. If validBoundary call is parallel
-    //  synced and all add the same patch with same settings
+    //  synced and all add the same patch with same settings.
     static label addPatch
     (
         fvMesh& mesh,