diff --git a/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C
index 68affb4e4eb1e2b123f7480eae3f593d04a6649f..e64ddc140f83bd294244cc85f6180a51cacb8fe9 100644
--- a/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C
+++ b/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C
@@ -1253,12 +1253,11 @@ bool Foam::faMeshDecomposition::writeDecomposition()
         {
             const labelList& curEdgeLabels = curPatchEdgeLabels[nPatches];
 
-            label ngbPolyPatchIndex =
-                findIndex
+            const label ngbPolyPatchIndex =
+                fvBoundaryProcAddressing.find
                 (
-                    fvBoundaryProcAddressing,
                     meshPatches[curBoundaryAddressing[patchi]]
-                   .ngbPolyPatchIndex()
+                    .ngbPolyPatchIndex()
                 );
 
             procPatches[nPatches] =
diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
index 98267e1c4152401ffb04fae19c28f4f1141304e2..db03ad94e5ec0afa34352744204080c63875f540 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
@@ -250,17 +250,21 @@ labelList identity(const label len);
 template<class ListType>
 label findIndex
 (
-    const ListType&,
-    typename ListType::const_reference,
+    const ListType& input,
+    typename ListType::const_reference val,
     const label start=0
-);
+)
+{
+    return input.find(val, start);
+}
+
 
 //- Find all occurences of given element. Linear search.
 template<class ListType>
 labelList findIndices
 (
-    const ListType& l,
-    typename ListType::const_reference t,
+    const ListType& input,
+    typename ListType::const_reference val,
     const label start=0
 );
 
diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
index 45f28b9ef9bbc68b0c234ec94372d1864c29f3ee..41ca98ae2815da55c4672ee212dfcf3b69383ee1 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
@@ -565,29 +565,6 @@ void Foam::invertManyToMany
 }
 
 
-template<class ListType>
-Foam::label Foam::findIndex
-(
-    const ListType& l,
-    typename ListType::const_reference t,
-    const label start
-)
-{
-    label index = -1;
-
-    for (label i = start; i < l.size(); i++)
-    {
-        if (l[i] == t)
-        {
-            index = i;
-            break;
-        }
-    }
-
-    return index;
-}
-
-
 template<class ListType>
 Foam::labelList Foam::findIndices
 (
diff --git a/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.C b/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.C
index 6904776a9d4d0f7bf5952505025852a27e43394d..e78e5d6be9fa42b93b57de416a45ff13e2e610f1 100644
--- a/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.C
+++ b/src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.C
@@ -90,8 +90,8 @@ void Foam::faGlobalMeshData::updateMesh()
                 label polyMeshPoint =
                     mesh_.patch().meshPoints()[localPointLabels[pointI]];
 
-                label sharedPolyMeshPoint =
-                    findIndex(polyMeshSharedPointLabels, polyMeshPoint);
+                const label sharedPolyMeshPoint =
+                    polyMeshSharedPointLabels.find(polyMeshPoint);
 
                 if
                 (
@@ -124,11 +124,11 @@ void Foam::faGlobalMeshData::updateMesh()
     sharedPointAddr_.setSize(sharedPointLabels_.size());
     forAll(sharedPointAddr_, pointI)
     {
-        label polyMeshSharedPointIndex = findIndex
-        (
-            polyMeshSharedPointLabels,
-            mesh_.patch().meshPoints()[sharedPointLabels_[pointI]]
-        );
+        const label polyMeshSharedPointIndex =
+            polyMeshSharedPointLabels.find
+            (
+                mesh_.patch().meshPoints()[sharedPointLabels_[pointI]]
+            );
 
         sharedPointAddr_[pointI] =
             globalList[polyMeshSharedPointAddr[polyMeshSharedPointIndex]]
diff --git a/src/finiteArea/faMesh/faMesh.C b/src/finiteArea/faMesh/faMesh.C
index 9a560d33ff993d9da6c894bc84cf89dbf242df45..457f8cd5fd049c3b5fe1aeb9c4968391f12eb6c6 100644
--- a/src/finiteArea/faMesh/faMesh.C
+++ b/src/finiteArea/faMesh/faMesh.C
@@ -560,7 +560,7 @@ Foam::faMesh::faMesh
             {
                 label curFace = edgeFaces[curPMeshEdge][faceI];
 
-                if (findIndex(faceLabels_, curFace) == -1)
+                if (faceLabels_.found(curFace))
                 {
                     label polyPatchID = pbm.whichPatch(curFace);
 
diff --git a/src/finiteArea/faMesh/faMeshDemandDrivenData.C b/src/finiteArea/faMesh/faMeshDemandDrivenData.C
index bbdd081e7f00ffdac23611bf0142b582296c6f9b..01d3692ae4e94613094e03df25d6d407deb57559 100644
--- a/src/finiteArea/faMesh/faMeshDemandDrivenData.C
+++ b/src/finiteArea/faMesh/faMeshDemandDrivenData.C
@@ -1647,7 +1647,7 @@ void Foam::faMesh::calcPointAreaNormalsByQuadricsFit() const
         {
             List<List<vector>> procLsPoints(Pstream::nProcs());
 
-            label curSharedPointIndex = findIndex(addr, k);
+            const label curSharedPointIndex = addr.find(k);
 
             scalar tol = 0.0;
 
diff --git a/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C b/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C
index 44f4541744d326b71a1c5fea156fc8436ee93e63..42895f71f2ad925bd2871eafcb64f3acc45d12d6 100644
--- a/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C
+++ b/src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C
@@ -269,8 +269,7 @@ void Foam::processorFaPatch::initUpdateMesh()
 
             const edge& e = patchEdges[edgeI];
 
-            indexInEdge[patchPointI] =
-                findIndex(e, pointLabels()[patchPointI]);
+            indexInEdge[patchPointI] = e.find(pointLabels()[patchPointI]);
         }
 
         OPstream toNeighbProc
@@ -326,9 +325,9 @@ void Foam::processorFaPatch::updateMesh()
                 // Find edge and index in edge on this side.
                 const edge& e = patchEdges[nbrPatchEdge[nbrPointI]];
 
-                label index =  1 - nbrIndexInEdge[nbrPointI];
+                const label index = 1 - nbrIndexInEdge[nbrPointI];
 
-                label patchPointI = findIndex(pointLabels(), e[index]);
+                const label patchPointI = pointLabels().find(e[index]);
 
                 neighbPoints[patchPointI] = nbrPointI;
             }
diff --git a/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C b/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C
index fae46354ca49118b24b13e81e2bebe4f6c829fb8..92662f998218ff162a67bd20e275f46089924d75 100644
--- a/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C
+++ b/src/finiteArea/faMesh/faPatches/faPatch/faPatch.C
@@ -197,7 +197,7 @@ void Foam::faPatch::calcPointEdges() const
 
         forAll(curPoints, pointI)
         {
-            label localPointIndex = findIndex(points, curPoints[pointI]);
+            const label localPointIndex = points.find(curPoints[pointI]);
 
             pointEdgs[localPointIndex].append(edgeI);
         }