diff --git a/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H b/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H
index cb2dfd5ddd1e49261c47ed18216c802b08afdca0..5ddaf3477afca45ad4e705912b094b842565f51a 100644
--- a/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H
+++ b/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H
@@ -23,3 +23,8 @@ bool ddtCorr
 (
     pimple.dict().lookupOrDefault("ddtCorr", true)
 );
+
+bool adjustFringe
+(
+    pimple.dict().lookupOrDefault("oversetAdjustPhi", false)
+);
diff --git a/applications/solvers/multiphase/interFoam/overInterDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/overInterDyMFoam/interDyMFoam.C
index 7bb7f8af6b87112aa1b2bbc93fb68a3582f184b7..4a986ef175f419519166b386633dbb16233c0aa8 100644
--- a/applications/solvers/multiphase/interFoam/overInterDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/overInterDyMFoam/interDyMFoam.C
@@ -53,6 +53,7 @@ Description
 #include "interpolationCellPoint.H"
 #include "transform.H"
 #include "fvMeshSubset.H"
+#include "oversetAdjustPhi.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -64,7 +65,7 @@ int main(int argc, char *argv[])
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
     #include "initContinuityErrs.H"
-    #include "createControl.H"
+    pimpleControl pimple(mesh);
     #include "createTimeControls.H"
     #include "createDyMControls.H"
     #include "createFields.H"
diff --git a/applications/solvers/multiphase/interFoam/overInterDyMFoam/pEqn.H b/applications/solvers/multiphase/interFoam/overInterDyMFoam/pEqn.H
index 0a5b0296b8b14d0b5dd4d94235636202d8ee81be..e332a353f6e723a015e115f4f098ac9ea5f0d5ac 100644
--- a/applications/solvers/multiphase/interFoam/overInterDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interFoam/overInterDyMFoam/pEqn.H
@@ -38,6 +38,13 @@
 
     phiHbyA += phig;
 
+    if (adjustFringe)
+    {
+        fvc::makeRelative(phiHbyA, U);
+        oversetAdjustPhi(phiHbyA, U);
+        fvc::makeAbsolute(phiHbyA, U);
+    }
+
     // Update the pressure BCs to ensure flux consistency
     constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);
 
@@ -64,7 +71,8 @@
                 "minGradP",
                 fvc::reconstruct((phig - p_rghEqn.flux())/rAUf)
             );
-            U = HbyA + rAU*cellMask*minGradP;
+            //U = HbyA + rAU*cellMask*minGradP;
+            U = fvc::reconstruct(phi);
             U.correctBoundaryConditions();
             fvOptions.correct(U);
         }
diff --git a/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H b/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H
index 0df2a74f3093bda327c81f9b61d83411df39ecd1..d8481c88704f42298d1b7f2c2fad8f843ce8c135 100644
--- a/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H
@@ -11,5 +11,6 @@ moveMeshOuterCorrectors =
 massFluxInterpolation =
     pimple.dict().lookupOrDefault("massFluxInterpolation", false);
 
-ddtCorr =
-    pimple.dict().lookupOrDefault("ddtCorr", true);
\ No newline at end of file
+ddtCorr = pimple.dict().lookupOrDefault("ddtCorr", true);
+
+adjustFringe =  pimple.dict().lookupOrDefault("oversetAdjustPhi", false);
diff --git a/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/fvSolution b/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/fvSolution
index f7341ee5c08d1a1fa854770672199238c8fb6b56..04bfe4172aac70c8c36cf696d63b290cfb3af21b 100644
--- a/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/fvSolution
+++ b/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/fvSolution
@@ -85,6 +85,8 @@ PIMPLE
     ddtCorr         yes;
     correctPhi      no;
 
+    oversetAdjustPhi    no;
+
     moveMeshOuterCorrectors no;
     turbOnFinalIterOnly no;
 }