diff --git a/src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/incompressibleAdjointSolver/incompressibleAdjointSolver.C b/src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/incompressibleAdjointSolver/incompressibleAdjointSolver.C
index cd6cc6839dd6fc9cf9cce057b55177481e2d6976..fa3770a874f9d61918dede19d94e540c3a078581 100644
--- a/src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/incompressibleAdjointSolver/incompressibleAdjointSolver.C
+++ b/src/optimisation/adjointOptimisation/adjoint/solvers/adjointSolvers/incompressible/incompressibleAdjointSolver/incompressibleAdjointSolver.C
@@ -420,19 +420,21 @@ void Foam::incompressibleAdjointSolver::accumulateBCSensitivityIntegrand
         fvPatchVectorField& Uab = UaBoundary[patchI];
         if (isA<adjointVectorBoundaryCondition>(Uab))
         {
-            const fvPatch& patch = mesh_.boundary()[patchI];
-            tmp<vectorField> tnf = patch.nf();
-            const scalarField& magSf = patch.magSf();
-
-            tmp<vectorField> DvDbMult =
-                nuEffBoundary[patchI]*(Uab.snGrad() + (gradUabf[patchI] & tnf))
-    //        - (nf*pa.boundaryField()[patchI])
-              + adjointTurbulence().adjointMomentumBCSource()[patchI];
-            bcDxDbMult()[patchI] +=
-                (
-                    DvDbMult
-                  & refCast<adjointVectorBoundaryCondition>(Uab).dxdbMult()
-                )*magSf*dt;
+            tmp<tensorField> dxdbMult =
+                refCast<adjointVectorBoundaryCondition>(Uab).dxdbMult();
+            if (dxdbMult)
+            {
+                const fvPatch& patch = mesh_.boundary()[patchI];
+                tmp<vectorField> tnf = patch.nf();
+                const scalarField& magSf = patch.magSf();
+
+                tmp<vectorField> DvDbMult =
+                    nuEffBoundary[patchI]
+                   *(Uab.snGrad() + (gradUabf[patchI] & tnf))
+        //        - (nf*pa.boundaryField()[patchI])
+                  + adjointTurbulence().adjointMomentumBCSource()[patchI];
+                bcDxDbMult()[patchI] += (DvDbMult & dxdbMult())*magSf*dt;
+            }
         }
     }
 }