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 a3f7fec87963d04b233b26b267b318d78a277d00..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();