diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/createControls.H b/applications/solvers/multiphase/interPhaseChangeFoam/createControls.H
new file mode 100644
index 0000000000000000000000000000000000000000..cf82a59b358b7aaa3981f923a5610f2c0985b9b0
--- /dev/null
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/createControls.H
@@ -0,0 +1 @@
+pimpleControl pimple(mesh);
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H
index bb336f16c01ecd4226ecd30535359c2f90b6265b..da76766cc1da0b895b58e7297868bb4964bc238b 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H
@@ -38,7 +38,6 @@ volScalarField& alpha2(mixture->alpha2());
 
 const dimensionedScalar& rho1 = mixture->rho1();
 const dimensionedScalar& rho2 = mixture->rho2();
-const dimensionedScalar& pSat = mixture->pSat();
 
 
 // Need to store rho for ddt(rho, U)
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
index 2524965b289144421f214115c30d6f97a7eba9b1..d12aaad2639a539e035c05a64e6129858372834e 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
@@ -56,13 +56,14 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
-
-    pimpleControl pimple(mesh);
-
-    #include "../interFoam/interDyMFoam/createControls.H"
+    #include "createControls.H"
+    #include "createTimeControls.H"
+    #include "../interFoam/interDyMFoam/createDyMControls.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
index 7501f5806283e70ca3e0dc70203e64796e7ba0be..8d992e80b0ef9d90e2d490b97add5d2e5538b56a 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/pEqn.H
@@ -38,7 +38,8 @@
         fvScalarMatrix p_rghEqn
         (
             fvc::div(phiHbyA) - fvm::laplacian(rAUf, p_rgh)
-          - (vDotvP - vDotcP)*(pSat - rho*gh) + fvm::Sp(vDotvP - vDotcP, p_rgh)
+          - (vDotvP - vDotcP)*(mixture->pSat() - rho*gh)
+          + fvm::Sp(vDotvP - vDotcP, p_rgh)
         );
 
         p_rghEqn.setReference(pRefCell, pRefValue);
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
index 1e805bf785cf0209c59e92567412da691f7a9e2f..2a2d5cbc38709dbc1626121f96f9d945eeac52a7 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
@@ -53,12 +53,12 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    pimpleControl pimple(mesh);
-
+    #include "createControls.H"
     #include "createFields.H"
     #include "createFvOptions.H"
     #include "createTimeControls.H"
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
index 0b0a31c669c880fd6b8ab7484c7f8196cadc9471..c08deda40381ded552f40e65218610dcda6d0408 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
@@ -32,7 +32,8 @@
         fvScalarMatrix p_rghEqn
         (
             fvc::div(phiHbyA) - fvm::laplacian(rAUf, p_rgh)
-          - (vDotvP - vDotcP)*(pSat - rho*gh) + fvm::Sp(vDotvP - vDotcP, p_rgh)
+          - (vDotvP - vDotcP)*(mixture->pSat() - rho*gh)
+          + fvm::Sp(vDotvP - vDotcP, p_rgh)
         );
 
         p_rghEqn.setReference(pRefCell, pRefValue);
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
index 0cd432b02cac81e3249fea20cbe9d02cca9ddf28..99850d69be78f2de6c487d44459a19e5d43aee51 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/multiphaseInterFoam/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I. \
     -I../interFoam \
     -ImultiphaseMixture/lnInclude \
     -I$(LIB_SRC)/transportModels \
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
index 2aca07af74b08dd1a8a87fb3c43519a77a96c779..1f50b72050da46da036aaf868988dc12a364f142 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
+++ b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
@@ -44,8 +44,6 @@ volScalarField rho
 );
 rho.oldTime();
 
-const surfaceScalarField& rhoPhi(mixture.rhoPhi());
-
 // Construct incompressible turbulence model
 autoPtr<incompressible::turbulenceModel> turbulence
 (
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
index a247985a39c610e53f105a185de46e5d830ae3b0..fa3969d85539d967e1eeb7c86c727e167488a667 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
@@ -44,14 +44,15 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
     #include "initContinuityErrs.H"
-
-    pimpleControl pimple(mesh);
-
     #include "createControls.H"
+    #include "createTimeControls.H"
+    #include "createDyMControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
@@ -75,6 +76,8 @@ int main(int argc, char *argv[])
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
+    const surfaceScalarField& rhoPhi(mixture.rhoPhi());
+
     turbulence->validate();
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
index 1e68b5f614cb5819ed65d65558a4756a7660a92c..933a396fe13792e812f25a7b64824529c22fdd38 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
@@ -43,12 +43,12 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    pimpleControl pimple(mesh);
-
+    #include "createControls.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createMRF.H"
@@ -60,6 +60,8 @@ int main(int argc, char *argv[])
 
     turbulence->validate();
 
+    const surfaceScalarField& rhoPhi(mixture.rhoPhi());
+
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
     Info<< "\nStarting time loop\n" << endl;
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/createControls.H b/applications/solvers/multiphase/potentialFreeSurfaceFoam/createControls.H
new file mode 100644
index 0000000000000000000000000000000000000000..cf82a59b358b7aaa3981f923a5610f2c0985b9b0
--- /dev/null
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/createControls.H
@@ -0,0 +1 @@
+pimpleControl pimple(mesh);
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
index 0499a9c9d6c4a41f22a3d7aa95736ae5f10f24aa..dea10839190989ee855db843d70a136b7ba2798b 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
@@ -49,14 +49,15 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
     #include "initContinuityErrs.H"
-
-    pimpleControl pimple(mesh);
-
     #include "createControls.H"
+    #include "createTimeControls.H"
+    #include "createDyMControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
index 8371a30800c00485b474495090d6170a2b7a49fc..b23fb73cf05cc046f963f4daead379c394b826fc 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
@@ -44,13 +44,12 @@ Description
 
 int main(int argc, char *argv[])
 {
-    #include "setRootCase.H"
+    #include "postProcess.H"
 
+    #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    pimpleControl pimple(mesh);
-
+    #include "createControls.H"
     #include "createTimeControls.H"
     #include "createFields.H"
     #include "createMRF.H"