diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
index 66a495f6b21d7408b56a166f017bdb6db0ef41e1..cc2dc1a415bedaa8a8493d28161a50d14b330a18 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
@@ -69,111 +69,132 @@ void Foam::GAMGAgglomeration::compactLevels(const label nCreatedLevels)
         procAgglomeratorPtr_().agglomerate();
 
 
-        if (debug)
-        {
+    }
 
-            Info<< "GAMGAgglomeration:" << nl
-                << "    local agglomerator     : " << type() << nl
-                << "    processor agglomerator : "
+    // Print a bit
+    if (processorAgglomerate() && debug)
+    {
+        Info<< "GAMGAgglomeration:" << nl
+            << "    local agglomerator     : " << type() << nl;
+        if (processorAgglomerate())
+        {
+            Info<< "    processor agglomerator : "
                 << procAgglomeratorPtr_().type() << nl
                 << nl;
+        }
 
-            Info<< setw(40) << "nCells"
-                << setw(24) << "nFaces/nCells"
-                << setw(24) << "nInterfaces"
-                << setw(24) << "nIntFaces/nCells" << nl
-                << setw(8) << "Level"
-                << setw(8) << "nProcs"
-                << "        "
-                << setw(8) << "avg"
-                << setw(8) << "max"
-                << "        "
-                << setw(8) << "avg"
-                << setw(8) << "max"
-                << "        "
-                << setw(8) << "avg"
-                << setw(8) << "max"
-                << "            " << setw(4) << "avg"
-                << "    " << setw(4) << "max"
-                << nl
-                << setw(8) << "-----"
-                << setw(8) << "------"
-                << "        "
-                << setw(8) << "---"
-                << setw(8) << "---"
-                << "        "
-                << setw(8) << "---"
-                << setw(8) << "---"
-                << "            " << setw(4) << "---"
-                << "    " << setw(4) << "---"
-                << nl;
-
-            for (label levelI = 0; levelI <= size(); levelI++)
+        Info<< setw(36) << "nCells"
+            << setw(20) << "nFaces/nCells"
+            << setw(20) << "nInterfaces"
+            << setw(20) << "nIntFaces/nCells"
+            << setw(12) << "profile"
+            << nl
+            << setw(8) << "Level"
+            << setw(8) << "nProcs"
+            << "    "
+            << setw(8) << "avg"
+            << setw(8) << "max"
+            << "    "
+            << setw(8) << "avg"
+            << setw(8) << "max"
+            << "    "
+            << setw(8) << "avg"
+            << setw(8) << "max"
+            << "    "
+            << setw(8) << "avg"
+            << setw(8) << "max"
+            //<< "    "
+            << setw(12) << "avg"
+            << nl
+            << setw(8) << "-----"
+            << setw(8) << "------"
+            << "    "
+            << setw(8) << "---"
+            << setw(8) << "---"
+            << "    "
+            << setw(8) << "---"
+            << setw(8) << "---"
+            << "    "
+            << setw(8) << "---"
+            << setw(8) << "---"
+            << "    "
+            << setw(8) << "---"
+            << setw(8) << "---"
+            //<< "    "
+            << setw(12) << "---"
+            //<< "    "
+            << nl;
+
+        for (label levelI = 0; levelI <= size(); levelI++)
+        {
+            label nProcs = 0;
+            label nCells = 0;
+            scalar faceCellRatio = 0;
+            label nInterfaces = 0;
+            label nIntFaces = 0;
+            scalar ratio = 0.0;
+            scalar profile = 0.0;
+
+            if (hasMeshLevel(levelI))
             {
-                label nProcs = 0;
-                label nCells = 0;
-                scalar faceCellRatio = 0;
-                label nInterfaces = 0;
-                label nIntFaces = 0;
-                scalar ratio = 0.0;
-
-                if (hasMeshLevel(levelI))
-                {
-                    nProcs = 1;
+                nProcs = 1;
 
-                    const lduMesh& fineMesh = meshLevel(levelI);
-                    nCells = fineMesh.lduAddr().size();
-                    faceCellRatio =
-                        scalar(fineMesh.lduAddr().lowerAddr().size())/nCells;
+                const lduMesh& fineMesh = meshLevel(levelI);
+                nCells = fineMesh.lduAddr().size();
+                faceCellRatio =
+                    scalar(fineMesh.lduAddr().lowerAddr().size())/nCells;
 
-                    const lduInterfacePtrsList interfaces =
-                        fineMesh.interfaces();
-                    forAll(interfaces, i)
+                const lduInterfacePtrsList interfaces =
+                    fineMesh.interfaces();
+                forAll(interfaces, i)
+                {
+                    if (interfaces.set(i))
                     {
-                        if (interfaces.set(i))
-                        {
-                            nInterfaces++;
-                            nIntFaces += interfaces[i].faceCells().size();
-                        }
+                        nInterfaces++;
+                        nIntFaces += interfaces[i].faceCells().size();
                     }
-                    ratio = scalar(nIntFaces)/nCells;
                 }
+                ratio = scalar(nIntFaces)/nCells;
 
-                label totNprocs = returnReduce(nProcs, sumOp<label>());
-
-                label maxNCells = returnReduce(nCells, maxOp<label>());
-                label totNCells = returnReduce(nCells, sumOp<label>());
-
-                scalar maxFaceCellRatio =
-                    returnReduce(faceCellRatio, maxOp<scalar>());
-                scalar totFaceCellRatio =
-                    returnReduce(faceCellRatio, sumOp<scalar>());
-
-                label maxNInt = returnReduce(nInterfaces, maxOp<label>());
-                label totNInt = returnReduce(nInterfaces, sumOp<label>());
-
-                scalar maxRatio = returnReduce(ratio, maxOp<scalar>());
-                scalar totRatio = returnReduce(ratio, sumOp<scalar>());
-
-                Info<< setw(8) << levelI
-                    << setw(8) << totNprocs
-
-                    << setw(16) << totNCells/totNprocs
-                    << setw(8) << maxNCells
-
-                    << "        "
-                    << setw(8) << setprecision(4) << totFaceCellRatio/totNprocs
-                    << setw(8) << setprecision(4) << maxFaceCellRatio
-                    << "        "
-                    << setw(8) << scalar(totNInt)/totNprocs
-                    << setw(8) << maxNInt
-                    << "        "
-                    << setw(8) << setprecision(4) << totRatio/totNprocs
-                    << setw(8) << setprecision(4) << maxRatio
-                    << nl;
+                profile = fineMesh.lduAddr().band().second();
             }
-            Info<< endl;
+
+            label totNprocs = returnReduce(nProcs, sumOp<label>());
+
+            label maxNCells = returnReduce(nCells, maxOp<label>());
+            label totNCells = returnReduce(nCells, sumOp<label>());
+
+            scalar maxFaceCellRatio =
+                returnReduce(faceCellRatio, maxOp<scalar>());
+            scalar totFaceCellRatio =
+                returnReduce(faceCellRatio, sumOp<scalar>());
+
+            label maxNInt = returnReduce(nInterfaces, maxOp<label>());
+            label totNInt = returnReduce(nInterfaces, sumOp<label>());
+
+            scalar maxRatio = returnReduce(ratio, maxOp<scalar>());
+            scalar totRatio = returnReduce(ratio, sumOp<scalar>());
+
+            scalar totProfile = returnReduce(profile, sumOp<scalar>());
+
+            Info<< setw(8) << levelI
+                << setw(8) << totNprocs
+                << "    "
+                << setw(8) << totNCells/totNprocs
+                << setw(8) << maxNCells
+                << "    "
+                << setw(8) << setprecision(4) << totFaceCellRatio/totNprocs
+                << setw(8) << setprecision(4) << maxFaceCellRatio
+                << "    "
+                << setw(8) << scalar(totNInt)/totNprocs
+                << setw(8) << maxNInt
+                << "    "
+                << setw(8) << setprecision(4) << totRatio/totNprocs
+                << setw(8) << setprecision(4) << maxRatio
+                << setw(12) << setprecision(4) << totProfile/totNprocs
+                << nl;
         }
+        Info<< endl;
     }
 }