diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
index a0422e31e90d7975de3d95d4403518aee5aacbe5..f1fadd14b5dabfccf4fc89609fce787d7861c6e5 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
@@ -183,6 +183,12 @@ label findLower
 );
 
 
+//- To construct a List from a C array. Has extra Container type
+//  to initialise e.g. wordList from arrays of char*.
+template<class Container, class T, int nRows>
+List<Container> initList(const T[nRows]);
+
+
 //- To construct a (square) ListList from a C array. Has extra Container type
 //  to initialise e.g. faceList from arrays of labels.
 template<class Container, class T, int nRows, int nColumns>
diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
index 2a2792af5317438abd78fb8c8af275ab1a62607a..53866772aaef01c52d7e423dda64b3e88238edd9 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C
@@ -486,6 +486,19 @@ Foam::label Foam::findLower
 }
 
 
+template<class Container, class T, int nRows>
+Foam::List<Container> Foam::initList(const T elems[nRows])
+{
+    List<Container> faces(nRows);
+
+    forAll(faces, faceI)
+    {
+        faces[faceI] = Container(elems[faceI]);
+    }
+    return faces;
+}
+
+
 template<class Container, class T, int nRows, int nColumns>
 Foam::List<Container> Foam::initListList(const T elems[nRows][nColumns])
 {