diff --git a/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.C b/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.C
index 443e188ed1d93139b2b2554c7f80272abf2b7d7f..d83b4a9f3af4bb1f244f16d74b3f684392cc7fee 100644
--- a/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.C
+++ b/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -106,6 +106,7 @@ AccessType ListListOps::combineOffset
     return result;
 }
 
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.H b/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.H
index c35fc714c6132f50111fd7fbab059b0c30f66edd..05cef4a723bad9d8c03d0871d2cd9b9a2a30a05a 100644
--- a/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.H
+++ b/src/OpenFOAM/containers/Lists/ListListOps/ListListOps.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -92,10 +92,8 @@ SourceFiles
 
 namespace Foam
 {
-//
-//template <class T> class accessOp;
-//template <class T> class offsetOp;
-// Dummy access operator for combine()
+
+// Dummy access operator for ListListOps::combine()
 template <class T>
 class accessOp
 {
@@ -108,7 +106,7 @@ public:
 };
 
 
-// Offset operator for combineOffset()
+// Offset operator for ListListOps::combineOffset()
 template <class T>
 class offsetOp
 {
diff --git a/src/OpenFOAM/meshes/meshShapes/face/face.H b/src/OpenFOAM/meshes/meshShapes/face/face.H
index 3b2ffcc757a961435746c72843260f66b882343b..c9cd3724dcae999961d39a7d64200ca0152c2d1d 100644
--- a/src/OpenFOAM/meshes/meshShapes/face/face.H
+++ b/src/OpenFOAM/meshes/meshShapes/face/face.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -50,6 +50,7 @@ SourceFiles
 #include "faceListFwd.H"
 #include "intersection.H"
 #include "pointHit.H"
+#include "ListListOps.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -386,6 +387,30 @@ public:
 };
 
 
+//- Hash specialization to offset faces in ListListOps::combineOffset
+template<>
+class offsetOp<face>
+{
+
+public:
+
+    inline face operator()
+    (
+        const face& x,
+        const label offset
+    ) const
+    {
+        face result(x.size());
+
+        forAll(x, xI)
+        {
+            result[xI] = x[xI] + offset;
+        }
+        return result;
+    }
+};
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/OpenFOAM/meshes/meshShapes/triFace/triFace.H b/src/OpenFOAM/meshes/meshShapes/triFace/triFace.H
index 8e5103ac2cb7c014654e3032f6a9efe844b08d09..24ad5d3d1ccf920dd401a01b81edbe5354635d06 100644
--- a/src/OpenFOAM/meshes/meshShapes/triFace/triFace.H
+++ b/src/OpenFOAM/meshes/meshShapes/triFace/triFace.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,6 +46,7 @@ SourceFiles
 #include "intersection.H"
 #include "pointField.H"
 #include "triPointRef.H"
+#include "ListListOps.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -249,6 +250,30 @@ template<>
 inline bool contiguous<triFace>()  {return true;}
 
 
+//- Hash specialization to offset faces in ListListOps::combineOffset
+template<>
+class offsetOp<triFace>
+{
+
+public:
+
+    inline triFace operator()
+    (
+        const triFace& x,
+        const label offset
+    ) const
+    {
+        triFace result(x);
+
+        forAll(x, xI)
+        {
+            result[xI] = x[xI] + offset;
+        }
+        return result;
+    }
+};
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C
index 1d759d3783520997fca920fbcfeae298064b91f4..89ffdec2ae21668e99e4e90bdb6db9e0774e9700 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsGatherAndMerge.C
@@ -28,58 +28,7 @@ License
 #include "mergePoints.H"
 #include "face.H"
 #include "triFace.H"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    //- Used to offset faces in Pstream::combineOffset
-    template<>
-    class offsetOp<face>
-    {
-
-    public:
-
-        face operator()
-        (
-            const face& x,
-            const label offset
-        ) const
-        {
-            face result(x.size());
-
-            forAll(x, xI)
-            {
-                result[xI] = x[xI] + offset;
-            }
-            return result;
-        }
-    };
-
-    //- Used to offset faces in Pstream::combineOffset
-    template<>
-    class offsetOp<triFace>
-    {
-
-    public:
-
-        triFace operator()
-        (
-            const triFace& x,
-            const label offset
-        ) const
-        {
-            triFace result(x);
-
-            forAll(x, xI)
-            {
-                result[xI] = x[xI] + offset;
-            }
-            return result;
-        }
-    };
-}
-
+#include "ListListOps.H"
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
diff --git a/src/triSurface/tools/labelledTri/labelledTri.H b/src/triSurface/tools/labelledTri/labelledTri.H
index a4bd26f825d2bdba43aa6baad204284835ee1c3d..6f0c13065d50bb53ecd6d38e42824b72875b1b60 100644
--- a/src/triSurface/tools/labelledTri/labelledTri.H
+++ b/src/triSurface/tools/labelledTri/labelledTri.H
@@ -36,6 +36,7 @@ SourceFiles
 #define labelledTri_H
 
 #include "triFace.H"
+#include "ListListOps.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -114,14 +115,15 @@ public:
 template<>
 inline bool contiguous<labelledTri>()  {return true;}
 
-//- Used to offset faces in ListListOps::combineOffset
+
+//- Hash specialization to offset faces in ListListOps::combineOffset
 template<>
 class offsetOp<labelledTri>
 {
 
 public:
 
-    labelledTri operator()
+    inline labelledTri operator()
     (
         const labelledTri& x,
         const label offset