diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
index 8f980046e2e0a6467675034e72dfc1e070d5e584..3245fa426250c5b06392e91661ccaffd78c0dd07 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -118,7 +118,7 @@ public:
     <
         interfaceThetaProps,
         multiphaseSystem::interfacePair,
-        multiphaseSystem::interfacePair::hash
+        multiphaseSystem::interfacePair::symmHash
     > thetaPropsTable;
 
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
index b55ffed9f7f58c4d372c334358c87df3faf394cb..4dd5c2ef51ba488dda6833bbee861def1e6ad4bd 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
@@ -92,18 +92,23 @@ void Foam::multiphaseSystem::solveAlphas()
 
             if (&phase2 == &phase1) continue;
 
-            surfaceScalarField phic
-            (
-                (mag(phi_) + mag(phase1.phi() - phase2.phi()))/mesh_.magSf()
-            );
+            surfaceScalarField phir(phase1.phi() - phase2.phi());
 
-            surfaceScalarField phir
+            scalarCoeffSymmTable::const_iterator cAlpha
             (
-                (phase1.phi() - phase2.phi())
-              + min(cAlpha(phase1, phase2)*phic, max(phic))
-               *nHatf(phase1, phase2)
+                cAlphas_.find(interfacePair(phase1, phase2))
             );
 
+            if (cAlpha != cAlphas_.end())
+            {
+                surfaceScalarField phic
+                (
+                    (mag(phi_) + mag(phase1.phi() - phase2.phi()))/mesh_.magSf()
+                );
+
+                phir += min(cAlpha()*phic, max(phic))*nHatf(phase1, phase2);
+            }
+
             word phirScheme
             (
                 "div(phir," + alpha2.name() + ',' + alpha1.name() + ')'
@@ -189,67 +194,6 @@ void Foam::multiphaseSystem::solveAlphas()
 }
 
 
-Foam::scalar Foam::multiphaseSystem::cAlpha
-(
-    const phaseModel& phase1,
-    const phaseModel& phase2
-) const
-{
-    scalarCoeffTable::const_iterator cAlpha
-    (
-        cAlphas_.find(interfacePair(phase1, phase2))
-    );
-
-    if (cAlpha == cAlphas_.end())
-    {
-        FatalErrorIn
-        (
-            "multiphaseSystem::cAlpha"
-            "(const phaseModel& phase1, const phaseModel& phase2) const"
-        )   << "Cannot find interface " << interfacePair(phase1, phase2)
-            << " in list of cAlpha values"
-            << exit(FatalError);
-    }
-
-    return cAlpha();
-}
-
-
-Foam::dimensionedScalar Foam::multiphaseSystem::Cvm
-(
-    const phaseModel& phase1,
-    const phaseModel& phase2
-) const
-{
-    scalarCoeffTable::const_iterator Cvm
-    (
-        Cvms_.find(interfacePair(phase1, phase2))
-    );
-
-    if (Cvm != Cvms_.end())
-    {
-        return Cvm()*phase2.rho();
-    }
-
-    Cvm = Cvms_.find(interfacePair(phase2, phase1));
-
-    if (Cvm != Cvms_.end())
-    {
-        return Cvm()*phase1.rho();
-    }
-
-    FatalErrorIn
-    (
-        "multiphaseSystem::Cvm"
-        "(const phaseModel& phase1, const phaseModel& phase2) const"
-    )   << "Cannot find interface " << interfacePair(phase1, phase2)
-        << " in list of Cvm values"
-        << exit(FatalError);
-
-    return Cvm()*phase2.rho();
-}
-
-
 Foam::tmp<Foam::surfaceVectorField> Foam::multiphaseSystem::nHatfv
 (
     const volScalarField& alpha1,
@@ -545,7 +489,24 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseSystem::Cvm
 
         if (&phase2 != &phase)
         {
-            tCvm() += Cvm(phase, phase2)*phase2;
+            scalarCoeffTable::const_iterator Cvm
+            (
+                Cvms_.find(interfacePair(phase, phase2))
+            );
+
+            if (Cvm != Cvms_.end())
+            {
+                tCvm() += Cvm()*phase2.rho()*phase2;
+            }
+            else
+            {
+                Cvm = Cvms_.find(interfacePair(phase2, phase));
+
+                if (Cvm != Cvms_.end())
+                {
+                    tCvm() += Cvm()*phase.rho()*phase2;
+                }
+            }
         }
     }
 
@@ -584,11 +545,28 @@ Foam::tmp<Foam::volVectorField> Foam::multiphaseSystem::Svm
 
         if (&phase2 != &phase)
         {
-            tSvm() += Cvm(phase, phase2)*phase2*phase2.DDtU();
+            scalarCoeffTable::const_iterator Cvm
+            (
+                Cvms_.find(interfacePair(phase, phase2))
+            );
+
+            if (Cvm != Cvms_.end())
+            {
+                tSvm() += Cvm()*phase2.rho()*phase2*phase2.DDtU();
+            }
+            else
+            {
+                Cvm = Cvms_.find(interfacePair(phase2, phase));
+
+                if (Cvm != Cvms_.end())
+                {
+                    tSvm() += Cvm()*phase.rho()*phase2*phase2.DDtU();
+                }
+            }
         }
     }
 
-    // Remove lift at fixed-flux boundaries
+    // Remove virtual mass at fixed-flux boundaries
     forAll(phase.phi().boundaryField(), patchi)
     {
         if
@@ -737,7 +715,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseSystem::surfaceTension
 
         if (&phase2 != &phase1)
         {
-            scalarCoeffTable::const_iterator sigma
+            scalarCoeffSymmTable::const_iterator sigma
             (
                 sigmas_.find(interfacePair(phase1, phase2))
             );
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H
index 79d1d72ab4d2563a7ba0893ccc4730c789fe7688..33ba3d76e926506d522797f2c16461841b77c344 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H
@@ -72,6 +72,21 @@ public:
     {
     public:
 
+        class symmHash
+        :
+            public Hash<interfacePair>
+        {
+        public:
+
+            symmHash()
+            {}
+
+            label operator()(const interfacePair& key) const
+            {
+                return word::hash()(key.first()) + word::hash()(key.second());
+            }
+        };
+
         class hash
         :
             public Hash<interfacePair>
@@ -83,7 +98,7 @@ public:
 
             label operator()(const interfacePair& key) const
             {
-                return word::hash()(key.first()) + word::hash()(key.second());
+                return word::hash()(key.first(), word::hash()(key.second()));
             }
         };
 
@@ -130,10 +145,10 @@ public:
     };
 
 
-    typedef HashPtrTable<dragModel, interfacePair, interfacePair::hash>
+    typedef HashPtrTable<dragModel, interfacePair, interfacePair::symmHash>
         dragModelTable;
 
-    typedef HashPtrTable<volScalarField, interfacePair, interfacePair::hash>
+    typedef HashPtrTable<volScalarField, interfacePair, interfacePair::symmHash>
         dragCoeffFields;
 
 
@@ -168,17 +183,20 @@ private:
 
         volScalarField alphas_;
 
+        typedef HashTable<scalar, interfacePair, interfacePair::symmHash>
+            scalarCoeffSymmTable;
+
         typedef HashTable<scalar, interfacePair, interfacePair::hash>
             scalarCoeffTable;
 
-        scalarCoeffTable sigmas_;
+        scalarCoeffSymmTable sigmas_;
         dimensionSet dimSigma_;
 
-        scalarCoeffTable cAlphas_;
+        scalarCoeffSymmTable cAlphas_;
 
         scalarCoeffTable Cvms_;
 
-        typedef HashTable<dictionary, interfacePair, interfacePair::hash>
+        typedef HashTable<dictionary, interfacePair, interfacePair::symmHash>
             interfaceDictTable;
 
         dragModelTable dragModels_;
@@ -196,18 +214,6 @@ private:
 
         void solveAlphas();
 
-        scalar cAlpha
-        (
-            const phaseModel& phase1,
-            const phaseModel& phase2
-        ) const;
-
-        dimensionedScalar Cvm
-        (
-            const phaseModel& phase1,
-            const phaseModel& phase2
-        ) const;
-
         tmp<surfaceVectorField> nHatfv
         (
             const volScalarField& alpha1,
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/CMakeLists.txt
index 93dc9f702ef6899b14de013b222db6a32848f22a..0a615c5085bb0be31886c0bb3456569caca9988c 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/CMakeLists.txt
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/CMakeLists.txt
@@ -19,6 +19,7 @@ LINK_DIRECTORIES(
 
 INCLUDE_DIRECTORIES(
     $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
+    $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
     $ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude
     ${PROJECT_SOURCE_DIR}/../vtkPV3Foam
 )
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/CMakeLists.txt
index f5d9f3f8678e3c7757de0a053cd7ac5bef58aa6c..ff2639ed4bfd4964b37f0a6fd633fa12fdfe908a 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/CMakeLists.txt
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/CMakeLists.txt
@@ -19,6 +19,7 @@ LINK_DIRECTORIES(
 
 INCLUDE_DIRECTORIES(
     $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
+    $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude
     $ENV{WM_PROJECT_DIR}/src/meshing/blockMesh/lnInclude
     ${PROJECT_SOURCE_DIR}/../vtkPV3blockMesh
 )
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
index ebfc0a83862c78740a0e735f17082d17bfa1e2c5..893dc030dc3334867525cfb1200df6a6954aa31a 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
@@ -58,7 +58,7 @@ Foam::fixedFluxPressureFvPatchScalarField::fixedFluxPressureFvPatchScalarField
     phiHbyAName_(ptf.phiHbyAName_),
     phiName_(ptf.phiName_),
     rhoName_(ptf.rhoName_),
-    DpName_(ptf.rhoName_),
+    DpName_(ptf.DpName_),
     adjoint_(ptf.adjoint_)
 {}
 
@@ -194,8 +194,11 @@ void Foam::fixedFluxPressureFvPatchScalarField::write(Ostream& os) const
     writeEntryIfDifferent<word>(os, "phiHbyA", "phiHbyA", phiHbyAName_);
     writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
     writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
-    writeEntryIfDifferent<word>(os, "Dp", "Dp", rhoName_);
-    os.writeKeyword("adjoint") << adjoint_ << token::END_STATEMENT << nl;
+    writeEntryIfDifferent<word>(os, "Dp", "Dp", DpName_);
+    if (adjoint_)
+    {
+        os.writeKeyword("adjoint") << adjoint_ << token::END_STATEMENT << nl;
+    }
     gradient().writeEntry("gradient", os);
 }
 
diff --git a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties
index 22545b07217af1c36a8388fb31ebf106c6e7cb27..bb819c4d0aa066dc4e908d183a24fed243af7f57 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseEulerFoam/bubbleColumn/constant/transportProperties
@@ -49,12 +49,10 @@ phases
 
 sigmas
 (
-    (air water)     0.07
 );
 
 interfaceCompression
 (
-    (air water)     0
 );
 
 virtualMass
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties
index fad0a7a482eabf8aabe1be23939748a5941cf13d..9ee595eb1341b3f939761f65d603ba1ca5679e2c 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/constant/transportProperties
@@ -79,9 +79,6 @@ sigmas
     (air water)     0.07
     (air oil)       0.07
     (air mercury)   0.07
-    (water oil)     0
-    (water mercury) 0
-    (oil mercury)   0
 );
 
 interfaceCompression
@@ -89,19 +86,10 @@ interfaceCompression
     (air water)     1
     (air oil)       1
     (air mercury)   1
-    (water oil)     0
-    (water mercury) 0
-    (oil mercury)   0
 );
 
 virtualMass
 (
-    (air water)     0
-    (air oil)       0
-    (air mercury)   0
-    (water oil)     0.5
-    (water mercury) 0.5
-    (oil mercury)   0.5
 );
 
 drag
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties
index fad0a7a482eabf8aabe1be23939748a5941cf13d..9ee595eb1341b3f939761f65d603ba1ca5679e2c 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/constant/transportProperties
@@ -79,9 +79,6 @@ sigmas
     (air water)     0.07
     (air oil)       0.07
     (air mercury)   0.07
-    (water oil)     0
-    (water mercury) 0
-    (oil mercury)   0
 );
 
 interfaceCompression
@@ -89,19 +86,10 @@ interfaceCompression
     (air water)     1
     (air oil)       1
     (air mercury)   1
-    (water oil)     0
-    (water mercury) 0
-    (oil mercury)   0
 );
 
 virtualMass
 (
-    (air water)     0
-    (air oil)       0
-    (air mercury)   0
-    (water oil)     0.5
-    (water mercury) 0.5
-    (oil mercury)   0.5
 );
 
 drag