diff --git a/src/optimisation/adjointOptimisation/adjoint/displacementMethod/displacementMethodvolumetricBSplinesMotionSolver/displacementMethodvolumetricBSplinesMotionSolver.C b/src/optimisation/adjointOptimisation/adjoint/displacementMethod/displacementMethodvolumetricBSplinesMotionSolver/displacementMethodvolumetricBSplinesMotionSolver.C
index 7b7b0b45dc56bba853a073dbfde4110dfa8a02ec..149a05059435b9c656a9ac86dd3538b55b1ac2cd 100644
--- a/src/optimisation/adjointOptimisation/adjoint/displacementMethod/displacementMethodvolumetricBSplinesMotionSolver/displacementMethodvolumetricBSplinesMotionSolver.C
+++ b/src/optimisation/adjointOptimisation/adjoint/displacementMethod/displacementMethodvolumetricBSplinesMotionSolver/displacementMethodvolumetricBSplinesMotionSolver.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -108,7 +108,7 @@ void displacementMethodvolumetricBSplinesMotionSolver::boundControlField
     // control points movement. Safe since the motionSolver can only be an
     // volumetricBSplinesMotionSolver
     refCast<volumetricBSplinesMotionSolver>
-        (motionPtr_()).boundControlPointsMovement(controlField);
+        (motionPtr_()).boundControlPointMovement(controlField);
 }
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.C b/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.C
index 989e00bbd95689a3e70f56c39aed91e838b17b2b..89fa4dd4a417b1dfb31a05963cdbedcab65279c3 100644
--- a/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.C
+++ b/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -142,12 +142,12 @@ void Foam::volumetricBSplinesMotionSolver::setControlPointsMovement
 }
 
 
-void Foam::volumetricBSplinesMotionSolver::boundControlPointsMovement
+void Foam::volumetricBSplinesMotionSolver::boundControlPointMovement
 (
     vectorField& controlPointsMovement
 )
 {
-    volBSplinesBase_.boundControlPointsMovement(controlPointsMovement);
+    volBSplinesBase_.boundControlPointMovement(controlPointsMovement);
 }
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.H b/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.H
index 32ed7f2f3e693544b43dd34db27ee7201cd214b5..0a90e27c8538a38fe9eb5b173cc485442aa551ed 100644
--- a/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.H
+++ b/src/optimisation/adjointOptimisation/adjoint/dynamicMesh/motionSolver/volumetricBSplinesMotionSolver/volumetricBSplinesMotionSolver.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -130,7 +130,7 @@ public:
         void setControlPointsMovement(const vectorField& controlPointsMovement);
 
         //- Bound control points movement
-        void boundControlPointsMovement(vectorField& controlPointsMovement);
+        void boundControlPointMovement(vectorField& controlPointsMovement);
 };
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplines/sensitivityVolBSplinesIncompressible.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplines/sensitivityVolBSplinesIncompressible.C
index 13cd21c68588d2ebdde8138ef3e5022b950c8d74..7e9e54a6352edccffad789022fe886a431fbed2f 100644
--- a/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplines/sensitivityVolBSplinesIncompressible.C
+++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplines/sensitivityVolBSplinesIncompressible.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -86,10 +86,10 @@ void sensitivityVolBSplines::computeObjectiveContributions()
                 dSdbSens_[passedCPs + cpI] = dSdbSensCP;
                 dndbSens_[passedCPs + cpI] = dndbSensCP;
             }
-            boxes[iNURB].boundControlPointMovement(dSdbSens_);
-            boxes[iNURB].boundControlPointMovement(dndbSens_);
             passedCPs += nb;
         }
+        volBSplinesBase_.boundControlPointMovement(dSdbSens_);
+        volBSplinesBase_.boundControlPointMovement(dndbSens_);
 
         passedCPs = 0;
         forAll(boxes, iNURB)
@@ -106,9 +106,9 @@ void sensitivityVolBSplines::computeObjectiveContributions()
             {
                 dxdbDirectSens_[passedCPs + cpI] = sensDxDbDirect[cpI];
             }
-            boxes[iNURB].boundControlPointMovement(dxdbDirectSens_);
             passedCPs += sensDxDbDirect.size();
         }
+        volBSplinesBase_.boundControlPointMovement(dxdbDirectSens_);
     }
 }
 
@@ -188,9 +188,8 @@ void sensitivityVolBSplines::assembleSensitivities()
             flowSens_[passedCPs + cpI] = sens[cpI];
         }
         passedCPs += sens.size();
-
-        boxes[iNURB].boundControlPointMovement(flowSens_);
     }
+    volBSplinesBase_.boundControlPointMovement(flowSens_);
 
     // Contribution from objective function
     // Note:
diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplinesFI/sensitivityVolBSplinesFIIncompressible.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplinesFI/sensitivityVolBSplinesFIIncompressible.C
index aba56274ec3877c79a7e47164b6476d1c8ff1bb5..7191f5a90cfd571d48feefc39b01d3168a5ba5f6 100644
--- a/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplinesFI/sensitivityVolBSplinesFIIncompressible.C
+++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/adjointSensitivity/incompressible/sensitivityVolBSplinesFI/sensitivityVolBSplinesFIIncompressible.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -137,7 +137,7 @@ void sensitivityVolBSplinesFI::assembleSensitivities()
     PtrList<NURBS3DVolume>& boxes = volBSplinesBase_.boxesRef();
     forAll(boxes, iNURB)
     {
-        label nb = boxes[iNURB].getControlPoints().size();
+        const label nb(boxes[iNURB].getControlPoints().size());
         vectorField boxSensitivities(nb, Zero);
 
         vectorField dxdbSens = boxes[iNURB].computeControlPointSensitivities
@@ -278,13 +278,6 @@ void sensitivityVolBSplinesFI::assembleSensitivities()
         }
 
         // Zero sensitivities in non-active design variables
-        boxes[iNURB].boundControlPointMovement(flowSens_);
-        boxes[iNURB].boundControlPointMovement(dSdbSens_);
-        boxes[iNURB].boundControlPointMovement(dndbSens_);
-        boxes[iNURB].boundControlPointMovement(dVdbSens_);
-        boxes[iNURB].boundControlPointMovement(distanceSens_);
-        boxes[iNURB].boundControlPointMovement(dxdbDirectSens_);
-        boxes[iNURB].boundControlPointMovement(optionsSens_);
         boxes[iNURB].boundControlPointMovement(boxSensitivities);
 
         // Transfer sensitivities to global list
@@ -299,6 +292,16 @@ void sensitivityVolBSplinesFI::assembleSensitivities()
         // Increment number of passed sensitivities
         passedCPs += nb;
     }
+
+    // Zero non-active sensitivity components.
+    // For consistent output only, does not affect optimisation
+    volBSplinesBase_.boundControlPointMovement(flowSens_);
+    volBSplinesBase_.boundControlPointMovement(dSdbSens_);
+    volBSplinesBase_.boundControlPointMovement(dndbSens_);
+    volBSplinesBase_.boundControlPointMovement(dVdbSens_);
+    volBSplinesBase_.boundControlPointMovement(distanceSens_);
+    volBSplinesBase_.boundControlPointMovement(dxdbDirectSens_);
+    volBSplinesBase_.boundControlPointMovement(optionsSens_);
 }
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/optMeshMovement/optMeshMovementVolumetricBSplinesExternalMotionSolver/optMeshMovementVolumetricBSplinesExternalMotionSolver.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/optMeshMovement/optMeshMovementVolumetricBSplinesExternalMotionSolver/optMeshMovementVolumetricBSplinesExternalMotionSolver.C
index b53cc7669ff7592872a8f6b41499c0bcbd9fbfe1..46eeadedeab1fd7ff8ab9854711d9e5a1fe01067 100644
--- a/src/optimisation/adjointOptimisation/adjoint/optimisation/optMeshMovement/optMeshMovementVolumetricBSplinesExternalMotionSolver/optMeshMovementVolumetricBSplinesExternalMotionSolver.C
+++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/optMeshMovement/optMeshMovementVolumetricBSplinesExternalMotionSolver/optMeshMovementVolumetricBSplinesExternalMotionSolver.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -69,7 +69,7 @@ computeBoundaryMovement
     }
 
     // Bound control point movement for non-active CPs
-    volBSplinesBase_.boundControlPointsMovement(cpMovement_);
+    volBSplinesBase_.boundControlPointMovement(cpMovement_);
 
     // Compute boundary movement
     label passedCPs(0);
diff --git a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C
index ca4d51eb3081693a6dad39dec758d784c257aea0..3221257012726cac119b2e61c00ecb7ce6172566 100644
--- a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C
+++ b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -203,7 +203,7 @@ Foam::scalar Foam::volBSplinesBase::computeMaxBoundaryDisplacement
     label pastControlPoints(0);
     forAll(volume_, iNURB)
     {
-        const label nb = volume_[iNURB].getControlPoints().size();
+        const label nb(volume_[iNURB].getControlPoints().size());
         vectorField localControlPointsMovement(nb, Zero);
 
         // Set localControlPointsMovement
@@ -230,7 +230,7 @@ Foam::scalar Foam::volBSplinesBase::computeMaxBoundaryDisplacement
 }
 
 
-void Foam::volBSplinesBase::boundControlPointsMovement
+void Foam::volBSplinesBase::boundControlPointMovement
 (
     vectorField& controlPointsMovement
 )
@@ -238,10 +238,10 @@ void Foam::volBSplinesBase::boundControlPointsMovement
     label pastControlPoints(0);
     forAll(volume_, iNURB)
     {
-        label nb = volume_[iNURB].getControlPoints().size();
+        const label nb(volume_[iNURB].getControlPoints().size());
         vectorField localControlPointsMovement(nb, Zero);
 
-        // set localControlPointsMovement
+        // Set localControlPointsMovement
         forAll (localControlPointsMovement, iCPM)
         {
             localControlPointsMovement[iCPM] =
@@ -250,7 +250,7 @@ void Foam::volBSplinesBase::boundControlPointsMovement
 
         volume_[iNURB].boundControlPointMovement(localControlPointsMovement);
 
-        // transfer bounding back to controlPointMovement
+        // Transfer bounding back to controlPointMovement
         forAll(localControlPointsMovement, iCPM)
         {
             controlPointsMovement[pastControlPoints + iCPM] =
@@ -270,10 +270,10 @@ void Foam::volBSplinesBase::moveControlPoints
     label pastControlPoints(0);
     forAll(volume_, iNURB)
     {
-        const label nb = volume_[iNURB].getControlPoints().size();
+        const label nb(volume_[iNURB].getControlPoints().size());
         vectorField localControlPointsMovement(nb, Zero);
 
-        // set localControlPointsMovement
+        // Set localControlPointsMovement
         forAll (localControlPointsMovement, iCPM)
         {
             localControlPointsMovement[iCPM] =
diff --git a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H
index 12945ef6a175c1e5b26de01ef184bc210b1cb584..b880a932ce2051bc474cca220800adfeaae9bd94 100644
--- a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H
+++ b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -141,7 +141,7 @@ public:
         );
 
         //- Bound control points movement
-        void boundControlPointsMovement(vectorField& controlPointsMovement);
+        void boundControlPointMovement(vectorField& controlPointsMovement);
 
         //- Move control points. No effect on mesh
         void moveControlPoints(const vectorField& controlPointsMovement);