diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
index ae5be722b1b3e4d1716ba409ce80f7c4100ba6b9..7d53f566b2db0b732c7bf892158ba79ef1f4a515 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
+++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -98,7 +98,13 @@ Foam::wallDist::wallDist(const fvMesh& mesh, const word& patchTypeName)
         static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
        .lookupOrDefault<Switch>("nRequired", false)
     ),
-    n_(volVectorField::null())
+    n_(volVectorField::null()),
+    updateInterval_
+    (
+        static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
+       .lookupOrDefault<label>("updateInterval", 1)
+    ),
+    requireUpdate_(true)
 {
     if (nRequired_)
     {
@@ -146,7 +152,13 @@ Foam::wallDist::wallDist
         static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
        .lookupOrDefault<Switch>("nRequired", false)
     ),
-    n_(volVectorField::null())
+    n_(volVectorField::null()),
+    updateInterval_
+    (
+        static_cast<const fvSchemes&>(mesh).subDict(patchTypeName_ & "Dist")
+       .lookupOrDefault<label>("updateInterval", 1)
+    ),
+    requireUpdate_(true)
 {
     if (nRequired_)
     {
@@ -185,8 +197,17 @@ const Foam::volVectorField& Foam::wallDist::n() const
 
 bool Foam::wallDist::movePoints()
 {
-    if (pdm_->movePoints())
+    if ((mesh_.time().timeIndex() % updateInterval_) == 0)
     {
+        requireUpdate_ = true;
+    }
+
+    if (requireUpdate_ && pdm_->movePoints())
+    {
+        DebugInfo<< "Updating wall distance" << endl;
+
+        requireUpdate_ = false;
+
         if (nRequired_)
         {
             return pdm_->correct(y_, n_.ref());
@@ -206,6 +227,7 @@ bool Foam::wallDist::movePoints()
 void Foam::wallDist::updateMesh(const mapPolyMesh& mpm)
 {
     pdm_->updateMesh(mpm);
+    requireUpdate_ = true;
     movePoints();
 }
 
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
index 9d4f0263b427ad44e4bb59fb692b39a60ac5adfc..4cddaaa4760d8c5be960d5d1f64270cbc5c14a96 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
+++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -37,6 +37,10 @@ Description
             // Optional entry enabling the calculation
             // of the normal-to-wall field
             nRequired false;
+
+            // Optional entry delaying wall distance update to every n steps
+            // Default is 1 (update every step)
+            updateInterval 5;
         }
     \endverbatim
 
@@ -90,6 +94,12 @@ class wallDist
         //- Normal-to-wall field
         mutable tmp<volVectorField> n_;
 
+        //- Update wall distance every updateInterval_ steps
+        const label updateInterval_;
+
+        //- Flag to indicate whether the wall distance requires updating
+        bool requireUpdate_;
+
 
     // Private Member Functions