diff --git a/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh b/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh
index 5d92a7f74ef43c5a08611e9e46c5cc4c12122358..769cb4c007775db790e08ca390d3516b77baae38 100644
--- a/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh
+++ b/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh
@@ -65,6 +65,8 @@ template<class TypeTag>
 class FVSaturation2P: public FVTransport<TypeTag>
 {
     typedef FVTransport<TypeTag> ParentType;
+    typedef typename GET_PROP_TYPE(TypeTag, TransportModel) Implementation;
+
     typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
 
     enum
@@ -276,7 +278,7 @@ public:
         int size = problem_.gridView().size(0);
         for (int i = 0; i < size; i++)
         {
-            updateSaturationSolution(i, updateVec[i][0], dt);
+            asImp_().updateSaturationSolution(i, updateVec[i][0], dt);
         }
     }
 
@@ -290,7 +292,7 @@ public:
         int size = problem_.gridView().size(0);
         for (int i = 0; i < size; i++)
         {
-            updateSaturationSolution(i, updateVec[i][0], dt);
+            asImp_().updateSaturationSolution(i, updateVec[i][0], dt);
         }
     }
 
@@ -478,6 +480,14 @@ public:
     }
 
 private:
+    //! Returns the implementation of the problem (i.e. static polymorphism)
+    Implementation &asImp_()
+    { return *static_cast<Implementation *>(this); }
+
+    //! \copydoc Dumux::IMPETProblem::asImp_()
+    const Implementation &asImp_() const
+    { return *static_cast<const Implementation *>(this); }
+
     Problem& problem_;
     Dune::shared_ptr<Velocity> velocity_;
     Dune::shared_ptr<CapillaryFlux> capillaryFlux_;