diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.C b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.C
index 7fe6149034873a4ceb3c85d820d248b323a90670..4a84834687dda1d0cd8f6f94b95b310f2e4e739a 100644
--- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.C
+++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.C
@@ -162,21 +162,26 @@ void Foam::porousBafflePressureFvPatchField::updateCoeffs()
     const scalar D = D_->value(t);
     const scalar I = I_->value(t);
 
-    jump_ =
+    setJump
+    (
         -sign(Un)
         *(
             D*turbModel.nu(patch().index())
           + I*0.5*magUn
-         )*magUn*length_;
+         )*magUn*length_
+    );
 
     if (internalField().dimensions() == dimPressure)
     {
-        jump_ *= patch().lookupPatchField<volScalarField, scalar>(rhoName_);
+        setJump
+        (
+            jump()*patch().lookupPatchField<volScalarField, scalar>(rhoName_)
+        );
     }
 
     if (debug)
     {
-        scalar avePressureJump = gAverage(jump_);
+        scalar avePressureJump = gAverage(jump());
         scalar aveVelocity = gAverage(Un);
 
         Info<< patch().boundaryMesh().mesh().name() << ':'
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
index c1d7c100544af74642c4405ce7a0fad65d5db4a1..53ec3fac7f612a07b0941e085bc5683a56101560 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
@@ -74,11 +74,11 @@ void Foam::fanFvPatchField<Foam::scalar>::calcFanJump()
                 deltap*pow4(constant::mathematical::pi)*sqr(dm_*rpm_)/1800.0
             );
 
-            this->jump_ = pdFan;
+            this->setJump(pdFan);
         }
         else
         {
-            this->jump_ = this->jumpTable_->value(Un);
+            this->setJump(jumpTable_->value(Un));
         }
 
         this->relax();
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C
index 49fdedd3be43064d9d4797abcc0aaf38360d72bb..d96fe62121335dc6f94de1ea0f5e4f4bce19927c 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.C
@@ -40,6 +40,7 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField
     jumpCyclicFvPatchField<Type>(p, iF),
     jump_(this->size(), Zero),
     jump0_(this->size(), Zero),
+    minJump_(pTraits<Type>::min),
     relaxFactor_(-1),
     timeIndex_(-1)
 {}
@@ -57,6 +58,7 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField
     jumpCyclicFvPatchField<Type>(ptf, p, iF, mapper),
     jump_(ptf.jump_, mapper),
     jump0_(ptf.jump0_, mapper),
+    minJump_(ptf.minJump_),
     relaxFactor_(ptf.relaxFactor_),
     timeIndex_(ptf.timeIndex_)
 {}
@@ -73,6 +75,7 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField
     jumpCyclicFvPatchField<Type>(p, iF, dict),
     jump_(p.size(), Zero),
     jump0_(p.size(), Zero),
+    minJump_(dict.getOrDefault<Type>("minJump", pTraits<Type>::min)),
     relaxFactor_(dict.getOrDefault<scalar>("relax", -1)),
     timeIndex_(this->db().time().timeIndex())
 {
@@ -109,6 +112,7 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField
     jumpCyclicFvPatchField<Type>(ptf),
     jump_(ptf.jump_),
     jump0_(ptf.jump0_),
+    minJump_(ptf.minJump_),
     relaxFactor_(ptf.relaxFactor_),
     timeIndex_(ptf.timeIndex_)
 {}
@@ -124,6 +128,7 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField
     jumpCyclicFvPatchField<Type>(ptf, iF),
     jump_(ptf.jump_),
     jump0_(ptf.jump0_),
+    minJump_(ptf.minJump_),
     relaxFactor_(ptf.relaxFactor_),
     timeIndex_(ptf.timeIndex_)
 {}
@@ -131,6 +136,26 @@ Foam::fixedJumpFvPatchField<Type>::fixedJumpFvPatchField
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+template<class Type>
+void Foam::fixedJumpFvPatchField<Type>::setJump(const Field<Type>& jump)
+{
+    if (this->cyclicPatch().owner())
+    {
+        jump_ = max(jump, minJump_);
+    }
+}
+
+
+template<class Type>
+void Foam::fixedJumpFvPatchField<Type>::setJump(const Type& jump)
+{
+    if (this->cyclicPatch().owner())
+    {
+        jump_ = max(jump, minJump_);
+    }
+}
+
+
 template<class Type>
 Foam::tmp<Foam::Field<Type>> Foam::fixedJumpFvPatchField<Type>::jump() const
 {
@@ -240,6 +265,11 @@ void Foam::fixedJumpFvPatchField<Type>::write(Ostream& os) const
         }
     }
 
+    if (minJump_ != pTraits<Type>::min)
+    {
+        os.writeEntry("minJump", minJump_);
+    }
+
     this->writeEntry("value", os);
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H
index baef3236e66a83df4f785580435e487d0ad99ea6..8c5470782f523850d455846c6b20c904dd869e77 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H
@@ -43,6 +43,7 @@ Usage
         patchType    | underlying patch type should be \c cyclic| yes |
         jump         | current jump value      | yes         |
         relax        | under-relaxation factor | no          |
+        minJump      | Minimum jump value      | no          |
     \endtable
 
     Example of the boundary condition specification:
@@ -88,9 +89,7 @@ class fixedJumpFvPatchField
     public jumpCyclicFvPatchField<Type>
 {
 
-protected:
-
-    // Protected data
+    // Private data
 
         //- "jump" field
         Field<Type> jump_;
@@ -98,6 +97,10 @@ protected:
         //- "jump" field at old time level
         Field<Type> jump0_;
 
+        //- Minimum allowable jump value
+        Type minJump_;
+
+
         //- Under-relaxation factor
         scalar relaxFactor_;
 
@@ -176,6 +179,12 @@ public:
 
         // Access
 
+            //- Set the jump field
+            virtual void setJump(const Field<Type>& jump);
+
+            //- Set the jump field (uniform value)
+            virtual void setJump(const Type& jump);
+
             //- Return the "jump" across the patch
             virtual tmp<Field<Type>> jump() const;
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C
index a7bcfd3a20f7af86140716d3086c7bc65561ba4f..b75e4b32225882ce9d20512127f095c166b68bde 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C
@@ -104,7 +104,7 @@ void Foam::swirlFanVelocityFvPatchField::calcFanJump()
         // Calculate the tangential velocity
         const vectorField tangentialVelocity(magTangU*tanDir);
 
-        this->jump_ = tangentialVelocity;
+        this->setJump(tangentialVelocity);
     }
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C
index 74ae08f31b80ffe04874074c3e091882a48b77ca..75758640834b61990e897521b0b43c1259dbb648 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformJump/uniformJumpFvPatchField.C
@@ -120,7 +120,7 @@ void Foam::uniformJumpFvPatchField<Type>::updateCoeffs()
 
     if (this->cyclicPatch().owner())
     {
-        this->jump_ = jumpTable_->value(this->db().time().value());
+        this->setJump(jumpTable_->value(this->db().time().value()));
     }
 
     fixedJumpFvPatchField<Type>::updateCoeffs();
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C
index 7ccaecc93f5051c3a022d2e9e8537ebd4172cc46..5fd72a0f7fde9cf58fa303b5071a456fa5eea234 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJump/energyJumpFvPatchScalarField.C
@@ -125,7 +125,7 @@ void Foam::energyJumpFvPatchScalarField::updateCoeffs()
 
         const labelUList& faceCells = this->patch().faceCells();
 
-        jump_ = thermo.he(pp, Tbp.jump(), faceCells);
+        setJump(thermo.he(pp, Tbp.jump(), faceCells));
     }
 
     fixedJumpFvPatchField<scalar>::updateCoeffs();