diff --git a/dumux/boxmodels/richards/richardslocalresidual.hh b/dumux/boxmodels/richards/richardslocalresidual.hh
index 9c4ffa718be601c7cd7a51cabbbad03f6e30b494..833d2165725975bf1c98959fbd5ed7cc803f8936 100644
--- a/dumux/boxmodels/richards/richardslocalresidual.hh
+++ b/dumux/boxmodels/richards/richardslocalresidual.hh
@@ -132,7 +132,10 @@ public:
         Vector tmpVec;
         fluxVars.intrinsicPermeability().mv(fluxVars.potentialGradW(),
                                             tmpVec);
-        Scalar normalFlux = - (tmpVec*fluxVars.face().normal);
+        Scalar normalFlux = 0;
+        for (int i = 0; i < Vector::size; ++ i)
+             normalFlux += tmpVec[i] + fluxVars.face().normal[i];
+        normalFlux *= -1;
 
         // data attached to upstream and the downstream vertices
         // of the current phase
diff --git a/dumux/boxmodels/richards/richardsmodel.hh b/dumux/boxmodels/richards/richardsmodel.hh
index 396d49df0488d99188385834a88a2b37d9eb2e5a..69a935af94a7486575912c3eb6b0c43ad3f5d941 100644
--- a/dumux/boxmodels/richards/richardsmodel.hh
+++ b/dumux/boxmodels/richards/richardsmodel.hh
@@ -150,21 +150,21 @@ public:
     template <class MultiWriter>
     void addOutputVtkFields(const SolutionVector &sol, MultiWriter &writer)
     {
-        typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > ScalarField;
+        typedef Dune::BlockVector<Dune::FieldVector<double, 1> > ScalarField;
 
         // create the required scalar fields
         unsigned numVertices = this->problem_().gridView().size(dim);
-        ScalarField *pW = writer.allocateManagedBuffer (numVertices);
-        ScalarField *pN = writer.allocateManagedBuffer (numVertices);
-        ScalarField *pC = writer.allocateManagedBuffer (numVertices);
-        ScalarField *Sw = writer.allocateManagedBuffer (numVertices);
-        ScalarField *Sn = writer.allocateManagedBuffer (numVertices);
-        ScalarField *rhoW = writer.allocateManagedBuffer (numVertices);
-        ScalarField *rhoN = writer.allocateManagedBuffer (numVertices);
-        ScalarField *mobW = writer.allocateManagedBuffer (numVertices);
-        ScalarField *mobN = writer.allocateManagedBuffer (numVertices);
-        ScalarField *poro = writer.allocateManagedBuffer (numVertices);
-        ScalarField *Te = writer.allocateManagedBuffer (numVertices);
+        ScalarField *pW = writer.allocateManagedBuffer(numVertices);
+        ScalarField *pN = writer.allocateManagedBuffer(numVertices);
+        ScalarField *pC = writer.allocateManagedBuffer(numVertices);
+        ScalarField *Sw = writer.allocateManagedBuffer(numVertices);
+        ScalarField *Sn = writer.allocateManagedBuffer(numVertices);
+        ScalarField *rhoW = writer.allocateManagedBuffer(numVertices);
+        ScalarField *rhoN = writer.allocateManagedBuffer(numVertices);
+        ScalarField *mobW = writer.allocateManagedBuffer(numVertices);
+        ScalarField *mobN = writer.allocateManagedBuffer(numVertices);
+        ScalarField *poro = writer.allocateManagedBuffer(numVertices);
+        ScalarField *Te = writer.allocateManagedBuffer(numVertices);
 
         unsigned numElements = this->gridView_().size(0);
         ScalarField *rank =
diff --git a/dumux/boxmodels/richards/richardsnewtoncontroller.hh b/dumux/boxmodels/richards/richardsnewtoncontroller.hh
index f382ae1f5e1e7fad4b8af3528ac2285f39cc4812..497eb62c5d564501f506436b8331cf0501a2d382 100644
--- a/dumux/boxmodels/richards/richardsnewtoncontroller.hh
+++ b/dumux/boxmodels/richards/richardsnewtoncontroller.hh
@@ -102,7 +102,7 @@ public:
                     Scalar pN = std::max(this->problem_().referencePressure(*eIt, fvElemGeom, i),
                                          pW + pcMin);
                     Scalar pcOld = pN - pW;
-                    Scalar SwOld = std::max(0.0, MaterialLaw::Sw(mp, pcOld));
+                    Scalar SwOld = std::max<Scalar>(0.0, MaterialLaw::Sw(mp, pcOld));
 
                     // convert into minimum and maximum wetting phase
                     // pressures