diff --git a/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C b/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C
index 47ba9eb2a9a22c3975238b31ea6dd7e4498226a5..03c18cd3e963eaebfcffbe26ebc44d4340cee358 100644
--- a/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C
+++ b/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C
@@ -230,8 +230,8 @@ void write
 int main(int argc, char *argv[])
 {
     argList::noParallel();
-    argList::validArgs.append("surface");
-    argList::validArgs.append("output name");
+    argList::validArgs.append("input file");
+    argList::validArgs.append("output file");
 #   include "setRootCase.H"
 #   include "createTime.H"
 
diff --git a/etc/settings.csh b/etc/settings.csh
index 865d486ad07d874d539d1efabf90034c1cf0acdb..6b1631073c9fb2d885e60dafe7efa2de99883bf7 100644
--- a/etc/settings.csh
+++ b/etc/settings.csh
@@ -130,6 +130,8 @@ endif
 # Communications library
 # ~~~~~~~~~~~~~~~~~~~~~~
 
+unset MPI_ARCH_PATH
+
 switch ("$WM_MPLIB")
 case OPENMPI:
     set mpi_version=openmpi-1.2.6
diff --git a/src/OSspecific/Unix/Unix.C b/src/OSspecific/Unix/Unix.C
index 830f48e71a7cb92db4f4b385724152f3a07b136e..e50444a23602ce9f84b69ced0c935e1246755a74 100644
--- a/src/OSspecific/Unix/Unix.C
+++ b/src/OSspecific/Unix/Unix.C
@@ -103,11 +103,7 @@ bool Foam::setEnv
     const bool overwrite
 )
 {
-#   ifdef linux
     return setenv(envName.c_str(), value.c_str(), overwrite) == 0;
-#   else
-    return putenv((char*)(envName + '=' + value.c_str()).c_str()) == 0;
-#   endif
 }
 
 
diff --git a/src/sampling/probes/probes.C b/src/sampling/probes/probes.C
index 2fcd9688e6ab8eab3a68b1c1c418d064a2c1ca98..b47f52e1f0e12d6fb88306720b8e8933a8d0f08f 100644
--- a/src/sampling/probes/probes.C
+++ b/src/sampling/probes/probes.C
@@ -231,14 +231,22 @@ bool Foam::probes::checkFieldTypes()
 
                 probeFilePtrs_.insert(fldName, sPtr);
 
-                *sPtr<< '#' << setw(IOstream::defaultPrecision() + 6)
-                     << "Time";
+                unsigned int w = IOstream::defaultPrecision() + 7;
 
-                forAll(probeLocations_, probeI)
+                for (direction cmpt=0; cmpt<vector::nComponents; cmpt++)
                 {
-                    *sPtr << token::SPACE << probeLocations_[probeI];
+                    *sPtr<< '#' << setw(IOstream::defaultPrecision() + 6)
+                        << vector::componentNames[cmpt];
+
+                    forAll(probeLocations_, probeI)
+                    {
+                        *sPtr<< setw(w) << probeLocations_[probeI][cmpt];
+                    }
+                    *sPtr << endl;
                 }
-                *sPtr << endl;
+
+                *sPtr<< '#' << setw(IOstream::defaultPrecision() + 6)
+                    << "Time" << endl;
             }
         }
 
diff --git a/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L b/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L
index c6343dd55efba314a035b5b2fb2de71cb4ecc476..fe49521d0d30b7b3ea2d1f38726706a5715c5a96 100644
--- a/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L
+++ b/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L
@@ -438,6 +438,7 @@ bool triSurface::readSTLASCII(const fileName& STLfileName)
 
     STLlabels.clear();
 
+    // Stitch all points within SMALL meters.
     stitchTriangles(rawPoints);
 
     // Convert solidNames into regionNames
diff --git a/src/triSurface/triSurface/stitchTriangles.C b/src/triSurface/triSurface/stitchTriangles.C
index 5b22529bdd4576293164046637c397df247831e4..a9bf3c47827a5229e8cd509b9a8f3ed3c2be6b38 100644
--- a/src/triSurface/triSurface/stitchTriangles.C
+++ b/src/triSurface/triSurface/stitchTriangles.C
@@ -42,17 +42,16 @@ bool triSurface::stitchTriangles
 )
 {
     // Merge points
-    labelList pointMap(rawPoints.size());
-
-    pointField newPoints(rawPoints.size());
-
+    labelList pointMap;
+    pointField newPoints;
     bool hasMerged = mergePoints(rawPoints, tol, verbose, pointMap, newPoints);
 
     if (hasMerged)
     {
         if (verbose)
         {
-            Pout<< "stitchTriangles : Renumbering all triangles" << endl;
+            Pout<< "stitchTriangles : Merged from " << rawPoints.size()
+                << " points down to " << newPoints.size() << endl;
         }
 
         pointField& ps = const_cast<pointField&>(points());
@@ -73,6 +72,7 @@ bool triSurface::stitchTriangles
                 operator[](newTriangleI)[0] = newA;
                 operator[](newTriangleI)[1] = newB;
                 operator[](newTriangleI)[2] = newC;
+                operator[](newTriangleI).region() = operator[](i).region();
                 newTriangleI++;
             }
             else if (verbose)
diff --git a/src/triSurface/triSurface/triSurface.C b/src/triSurface/triSurface/triSurface.C
index 265b08d9c835ab08696c6d2a6b6946e4fae4ebd2..b58c2f6f583527a83d60291629df5a256a0fa02d 100644
--- a/src/triSurface/triSurface/triSurface.C
+++ b/src/triSurface/triSurface/triSurface.C
@@ -651,7 +651,7 @@ surfacePatchList triSurface::calcPatches(labelList& faceMap) const
     {
         sortedRegion[faceI] = operator[](faceI).region();
     }
-    sortedRegion.sort();
+    sortedRegion.stableSort();
 
     faceMap = sortedRegion.indices();
 
@@ -1214,7 +1214,11 @@ void triSurface::writeStats(Ostream& os) const
 {
     // Calculate bounding box without any additional addressing
     // Copy of treeBoundBox code. Cannot use meshTools from triSurface...
-    boundBox bb;
+    boundBox bb
+    (
+        point(VGREAT, VGREAT, VGREAT),
+        point(-VGREAT, -VGREAT, -VGREAT)
+    );
     forAll(*this, triI)
     {
         const labelledTri& f = operator[](triI);