diff --git a/src/meshTools/PatchFunction1/ConstantField/ConstantField.C b/src/meshTools/PatchFunction1/ConstantField/ConstantField.C
index 6815159711a88366c50fc6fe274bf1fd06f401ab..5ef4d1d974c53bea1833330964b14e381708745e 100644
--- a/src/meshTools/PatchFunction1/ConstantField/ConstantField.C
+++ b/src/meshTools/PatchFunction1/ConstantField/ConstantField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2018 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2018-2019 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,7 +43,22 @@ Foam::PatchFunction1Types::ConstantField<Type>::ConstantField
     isUniform_(isUniform),
     uniformValue_(uniformValue),
     value_(nonUniformValue)
-{}
+{
+    if (faceValues && nonUniformValue.size() != pp.size())
+    {
+        FatalIOErrorInFunction(dict)
+            << "Supplied field size " << nonUniformValue.size()
+            << " is not equal to the number of faces " << pp.size()
+            << " of patch " << pp.name() << exit(FatalIOError);
+    }
+    else if (!faceValues && nonUniformValue.size() != pp.nPoints())
+    {
+        FatalIOErrorInFunction(dict)
+            << "Supplied field size " << nonUniformValue.size()
+            << " is not equal to the number of points " << pp.nPoints()
+            << " of patch " << pp.name() << exit(FatalIOError);
+    }
+}
 
 
 template<class Type>
@@ -132,6 +147,7 @@ Foam::Field<Type> Foam::PatchFunction1Types::ConstantField<Type>::getValue
             fld = uniformValue;
         }
     }
+
     return fld;
 }
 
@@ -147,7 +163,17 @@ Foam::PatchFunction1Types::ConstantField<Type>::ConstantField
 )
 :
     PatchFunction1<Type>(pp, entryName, dict, faceValues),
-    value_(getValue(entryName, dict, pp.size(), isUniform_, uniformValue_))
+    value_
+    (
+        getValue
+        (
+            entryName,
+            dict,
+            (faceValues ? pp.size() : pp.nPoints()),
+            isUniform_,
+            uniformValue_
+        )
+    )
 {}
 
 
@@ -177,7 +203,12 @@ Foam::PatchFunction1Types::ConstantField<Type>::ConstantField
     value_(cnst.value_)
 {
     // If different sizes do what?
-    value_.setSize(this->patch_.size());
+    value_.setSize
+    (
+        this->faceValues_
+      ? this->patch_.size()
+      : this->patch_.nPoints()
+    );
     if (isUniform_)
     {
         value_ = uniformValue_;
diff --git a/src/meshTools/PatchFunction1/PatchFunction1New.C b/src/meshTools/PatchFunction1/PatchFunction1New.C
index 4b10bd59ca203726f43efc1c9d505cc4d5a7a073..1b825980bcc3012ea40cff498b58d40d53999d22 100644
--- a/src/meshTools/PatchFunction1/PatchFunction1New.C
+++ b/src/meshTools/PatchFunction1/PatchFunction1New.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2018 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2018-2019 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -69,7 +69,11 @@ Foam::autoPtr<Foam::PatchFunction1<Type>> Foam::PatchFunction1<Type>::New
             is.putBack(firstToken);
 
             const Type uniformValue = pTraits<Type>(is);
-            const Field<Type> value(pp.size(), uniformValue);
+            const Field<Type> value
+            (
+                (faceValues ? pp.size() : pp.nPoints()),
+                uniformValue
+            );
 
             return autoPtr<PatchFunction1<Type>>
             (